@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.8/dist/web/static/pretendard.css");

/*
 * ASGG shared site skin
 * Main workspace reference: white editorial document, charcoal controls,
 * thin warm-gray rules, rectangular cards, and quiet semantic colors.
 * This file is scoped to body.asgg-site so print documents and legacy embeds
 * keep their own layout unless a page explicitly opts in.
 */
:root {
  --asgg-paper: #f7f6f3;
  --asgg-panel: #ffffff;
  --asgg-ink: #1a1a18;
  --asgg-ink-soft: #3a3934;
  --asgg-muted: #8a887f;
  --asgg-faint: #a09e94;
  --asgg-line: #e3e0d8;
  --asgg-line-strong: #c9c4ba;
  --asgg-soft: #efede7;
  --asgg-green: #166534;
  --asgg-amber: #a16207;
  --asgg-red: #b91c1c;
}

body.asgg-site {
  background: var(--asgg-paper);
  color: var(--asgg-ink);
  font-family: "Pretendard", "Apple SD Gothic Neo", -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
}

body.asgg-site,
body.asgg-site button,
body.asgg-site input,
body.asgg-site select,
body.asgg-site textarea {
  font-family: "Pretendard", "Apple SD Gothic Neo", -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  letter-spacing: 0 !important;
}

body.asgg-site :where(h1, h2, h3, h4, p) {
  letter-spacing: 0 !important;
}

body.asgg-site :where(button:not(.marker-color), input, select, textarea) {
  box-shadow: none !important;
}

body.asgg-site :where(input, select, textarea) {
  border-color: var(--asgg-line) !important;
  border-radius: 4px !important;
  background: var(--asgg-panel) !important;
  color: var(--asgg-ink) !important;
}

body.asgg-site :where(input, select, textarea):focus {
  border-color: var(--asgg-ink) !important;
  outline: 1px solid var(--asgg-ink) !important;
  outline-offset: -1px;
}

body.asgg-site :where(button:not(.marker-color), .btn, .tbtn, .mini) {
  border-radius: 4px !important;
}

body.asgg-site :where(.kicker, .k, [class*="eyebrow"]) {
  color: var(--asgg-muted) !important;
  letter-spacing: 0 !important;
  text-transform: uppercase;
}

body.asgg-site :where(table) {
  border-color: var(--asgg-line) !important;
  font-variant-numeric: tabular-nums;
}

body.asgg-site :where(table th) {
  color: var(--asgg-muted) !important;
  border-color: var(--asgg-line-strong) !important;
}

body.asgg-site :where(table td) {
  border-color: var(--asgg-line) !important;
}

body.asgg-site :where(.back) {
  color: var(--asgg-muted) !important;
  text-decoration: none;
}

body.asgg-site :where(.back):hover {
  color: var(--asgg-ink) !important;
}

/* Field log */
body.asgg-site--memo {
  --accent: var(--asgg-ink);
}

body.asgg-site--memo :where(.sitecard, .loghead, .quick, .entry) {
  border-color: var(--asgg-line) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--memo .sitecard:hover {
  border-color: var(--asgg-ink) !important;
  box-shadow: none !important;
  background: #fbfaf7 !important;
}

body.asgg-site--memo :where(.sfchip, .chip, .badge, .tag, .st-pill) {
  border-radius: 2px !important;
}

body.asgg-site--memo :where(.sfchip.on, .filterbar .chip.on, .add-btn) {
  background: var(--asgg-ink) !important;
  border-color: var(--asgg-ink) !important;
  color: #fff !important;
}

body.asgg-site--memo .chip.active {
  outline-color: var(--asgg-ink) !important;
}

body.asgg-site--memo .sc-go {
  color: var(--asgg-ink) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Material library */
body.asgg-site--library :where(.kpi) {
  border-color: var(--asgg-line) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--library :where(.toolbar select, .toolbar .search, .myprice, .memo) {
  border-radius: 4px !important;
}

body.asgg-site--library :where(.thumb, .nothumb) {
  border-radius: 2px !important;
}

body.asgg-site--library .grp td {
  background: #f2f0eb !important;
}

body.asgg-site--library .del {
  border-radius: 4px !important;
  color: var(--asgg-red) !important;
}

/* Card usage */
body.asgg-site--card-usage .row {
  border-color: var(--asgg-line) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--card-usage .cardtag,
body.asgg-site--card-usage .empty code {
  border-radius: 2px !important;
}

/* Legacy idea-plan editor */
body.asgg-site--plan {
  --bg: var(--asgg-paper);
  --ink: var(--asgg-ink);
  --line: var(--asgg-line);
  --accent: var(--asgg-ink);
  --green: var(--asgg-ink);
}

body.asgg-site--plan .topbar {
  background: var(--asgg-panel) !important;
  border-color: var(--asgg-line) !important;
}

body.asgg-site--plan :where(.proj-sel, .tbtn, .pp-add, .ptools button, .mini, .btb button) {
  border-radius: 4px !important;
}

body.asgg-site--plan .tbtn.primary {
  background: var(--asgg-ink) !important;
  border-color: var(--asgg-ink) !important;
  color: #fff !important;
}

body.asgg-site--plan .pagespanel {
  background: #fbfaf7 !important;
}

body.asgg-site--plan .pcard {
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--plan .pcard.active {
  border-color: var(--asgg-ink) !important;
}

body.asgg-site--plan :where(.pop, .canvas) {
  border-radius: 0 !important;
}

body.asgg-site--plan .canvas {
  box-shadow: 0 12px 32px rgba(26, 26, 24, 0.1) !important;
}

/* IDEA PLAN Studio */
body.asgg-site--studio {
  --ips-bg: var(--asgg-paper);
  --ips-panel: var(--asgg-panel);
  --ips-ink: var(--asgg-ink);
  --ips-mut: var(--asgg-muted);
  --ips-line: var(--asgg-line);
  --ips-accent: var(--asgg-ink);
  --ips-blue: var(--asgg-ink);
}

body.asgg-site--studio :where(.ips-card, .ips-empty, #ips-canvas-wrap, .ips-list li) {
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--studio :where(.ips-proj select, .ips-step, .ips-i, .ips-t, .ips-s, .ips-btn) {
  border-radius: 4px !important;
}

body.asgg-site--studio :where(.ips-badge, .ips-tag, .ips-chip) {
  border-radius: 2px !important;
}

body.asgg-site--studio .ips-logo b {
  color: var(--asgg-ink) !important;
}

/* Mobile field mode */
body.asgg-site--mobile {
  --bg: var(--asgg-paper);
  --ink: var(--asgg-ink);
  --gray: var(--asgg-muted);
  --line: var(--asgg-line);
}

body.asgg-site--mobile > header {
  background: var(--asgg-panel) !important;
  color: var(--asgg-ink) !important;
  border-bottom: 1px solid var(--asgg-line);
}

body.asgg-site--mobile > header span {
  color: var(--asgg-muted) !important;
}

body.asgg-site--mobile :where(.card, .ph) {
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--mobile :where(.btn, .mini, .mprow button) {
  border-radius: 4px !important;
}

body.asgg-site--mobile .btn-dark {
  background: var(--asgg-ink) !important;
}

body.asgg-site--mobile .btnbar {
  background: rgba(247, 246, 243, 0.96) !important;
}

body.asgg-site--mobile #toast {
  border-radius: 2px !important;
}

/* Client review */
body.asgg-site--client {
  --bg: var(--asgg-paper);
  --ink: var(--asgg-ink);
  --mut: var(--asgg-muted);
  --line: var(--asgg-line);
  --blue: var(--asgg-ink);
}

body.asgg-site--client :where(.card, .opt) {
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.asgg-site--client :where(.btn, .chip, .pill, img.thumb) {
  border-radius: 4px !important;
}

body.asgg-site--client .opt.sel {
  border-color: var(--asgg-ink) !important;
  box-shadow: inset 0 0 0 1px var(--asgg-ink) !important;
}

/* Synology Photos launcher */
body.asgg-site--photo {
  background: var(--asgg-paper) !important;
}

body.asgg-site--photo main {
  border-color: var(--asgg-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.asgg-site--photo .primary {
  background: var(--asgg-ink) !important;
  color: #fff !important;
}

body.asgg-site--photo :where(a, code) {
  border-radius: 4px !important;
}

/* Construction schedule */
body.asgg-site--schedule {
  --asgg-bg: var(--asgg-paper);
  --asgg-ink: #1a1a18;
  --asgg-accent: var(--asgg-ink);
}

body.asgg-site--schedule .sheet-toolbar {
  border-color: var(--asgg-line) !important;
}

body.asgg-site--schedule .sheet-toolbar button:not(.marker-color),
body.asgg-site--schedule .sheet-toolbar select,
body.asgg-site--schedule .sheet-toolbar input {
  border-radius: 4px !important;
}

body.asgg-site--schedule .sheet-toolbar .is-active:not(.marker-color),
body.asgg-site--schedule #analyzeSchedule,
body.asgg-site--schedule #asgg-analysis-btn {
  background: var(--asgg-ink) !important;
  border-color: var(--asgg-ink) !important;
  color: #fff !important;
}

body.asgg-site--schedule .sheet-toolbar .marker-color.is-active {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--asgg-ink) !important;
  border-color: var(--asgg-ink) !important;
}

body.asgg-site--schedule .sheet-frame {
  border-color: var(--asgg-line) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body.asgg-site--schedule .schedule-project-heading {
  border-color: var(--asgg-line) !important;
  border-left-color: var(--asgg-ink) !important;
  border-radius: 0 !important;
}

body.asgg-site--schedule .schedule-brand-mark {
  border-radius: 4px !important;
  box-shadow: none !important;
}

/* React IDEA PLAN dashboard: preserve its editorial composition, unify tokens. */
body.asgg-site--idea-plan {
  --ink: var(--asgg-ink);
  --muted: var(--asgg-muted);
  --subtle: var(--asgg-faint);
  --line: var(--asgg-line);
  --line-strong: var(--asgg-line-strong);
  --surface: var(--asgg-panel);
  --soft: var(--asgg-paper);
  --blue: var(--asgg-ink);
  --violet: var(--asgg-ink);
}

body.asgg-site--idea-plan :where(button, input, select, textarea) {
  border-radius: 4px !important;
}

/* Proposal Builder already uses an editorial canvas; align the page surface. */
body.asgg-site--proposal {
  background: var(--asgg-paper) !important;
}

body.asgg-site--proposal :where(.drop-zone, button, input, select, textarea) {
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Urban-law workspace */
body.asgg-site--urbanlaw {
  --ink: var(--asgg-ink);
  --text: var(--asgg-ink-soft);
  --muted: var(--asgg-muted);
  --faint: var(--asgg-faint);
  --line: var(--asgg-line);
  --line-strong: var(--asgg-line-strong);
  --soft: var(--asgg-paper);
  --blue: var(--asgg-ink);
  --blue-soft: var(--asgg-soft);
}

body.asgg-site--urbanlaw .sidebar {
  background: #fbfaf7 !important;
}

body.asgg-site--urbanlaw .brand > span {
  background: var(--asgg-ink) !important;
  border-radius: 4px !important;
}

body.asgg-site--urbanlaw :where(.nav, .icon-btn, button, input, select, textarea) {
  border-radius: 4px !important;
}

body.asgg-site--urbanlaw .nav.active {
  background: var(--asgg-soft) !important;
  color: var(--asgg-ink) !important;
}

/* Old idea output toolbar only; printed A3 pages keep their own design. */
body.asgg-site--idea-legacy > .top {
  background: var(--asgg-panel) !important;
  border-bottom: 1px solid var(--asgg-line) !important;
}

body.asgg-site--idea-legacy > .top :where(button, select, input) {
  border-radius: 4px !important;
}

body.asgg-site--idea-legacy > .top .dark {
  background: var(--asgg-ink) !important;
  border-color: var(--asgg-ink) !important;
}

@media (max-width: 760px) {
  body.asgg-site :where(.wrap) {
    padding-left: 16px;
    padding-right: 16px;
  }

  body.asgg-site--schedule .sheet-toolbar {
    padding-inline: 12px !important;
  }
}

@media print {
  body.asgg-site {
    background: #fff !important;
  }
}
