/* CHIHO workspace: shared, restrained document and management surfaces. */
:root{
  --calm-bg:#f5f5f1;--calm-paper:#fff;--calm-ink:#29332e;--calm-muted:#69746d;
  --calm-line:#dce1d9;--calm-soft:#edf1e9;--calm-accent:#52675b;--calm-hover:#42574b;
  --chiho-red:var(--calm-accent);--chiho-red-active:var(--calm-hover);--chiho-red-hover:var(--calm-hover);
  --chiho-canvas:var(--calm-bg);--chiho-canvas-2:#f0f1ec;--chiho-canvas-elevated:#fff;
  --chiho-elevated:#fff;--chiho-ink:var(--calm-ink);--chiho-body:var(--calm-muted);
  --chiho-muted:var(--calm-muted);--chiho-hairline:var(--calm-line);--chiho-hairline-soft:var(--calm-line);
  --bg:var(--calm-bg);--card:#fff;--text:var(--calm-ink);--ink:var(--calm-ink);--sub:var(--calm-muted);
  --muted:var(--calm-muted);--line:var(--calm-line);--accent:var(--calm-accent);--accent-active:var(--calm-hover);
  --brand:var(--calm-accent);--brand-2:#b4c1b3;--danger:#92534c;--radius:8px;
  --shadow:0 4px 16px rgba(41,51,46,.04);--shadow-sm:none;
}
@media screen{
  html:has(body.calm-ui),body.calm-ui{background:var(--calm-bg)!important;color:var(--calm-ink);color-scheme:light}
  .calm-ui,.calm-ui *{box-sizing:border-box}
  body.calm-ui{font-family:"Pretendard Variable",Pretendard,"Malgun Gothic",system-ui,sans-serif;font-size:14px;line-height:1.65}
  .calm-ui a{color:inherit}
  .calm-ui :is(button,input,select,textarea){font-family:inherit}
  .calm-ui :is(.topbar,.topbar-main,.portal-topbar){background:rgba(255,255,252,.97);border-bottom:1px solid var(--calm-line);box-shadow:none;backdrop-filter:none;min-height:68px;padding-top:10px;padding-bottom:10px}
  .calm-ui :is(.brand-text strong,.portal-brand-text strong,.brand strong,.topbar .title){color:var(--calm-ink);font-size:13px;letter-spacing:.5px}
  .calm-ui :is(.brand-text span,.portal-brand-text span,.brand>span>span,.topbar .sub){color:var(--calm-muted);text-transform:none;letter-spacing:0;font-size:11px}
  .calm-ui :is(.brand-mark,.portal-mark){width:5px;height:25px;background:var(--calm-accent);border-radius:2px}
  .calm-ui :is(.btn,.pill-btn,.apply,.portal-actions>a,.portal-actions>button,.top-actions>button,.top-actions>a,.btn-primary){min-height:38px;padding:9px 14px;line-height:1.3;border:1px solid var(--calm-line);border-radius:6px;background:#fff;color:var(--calm-ink);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;box-shadow:none;text-decoration:none;transition:background .15s,border-color .15s}
  .calm-ui :is(.btn,.pill-btn,.portal-actions>a,.top-actions>a):hover{background:var(--calm-soft);border-color:#bcc8bb;color:var(--calm-ink)}
  .calm-ui :is(.btn.primary,.btn-primary,.btn.green,.btn.blue,.apply,.portal-actions>button){background:var(--calm-accent);border-color:var(--calm-accent);color:#fff}
  .calm-ui :is(.btn.primary,.btn-primary,.btn.green,.btn.blue,.apply,.portal-actions>button):hover{background:var(--calm-hover);border-color:var(--calm-hover);color:#fff}
  .calm-ui :is(.btn.danger,.btn-danger,.danger,.btn.red,.btn.orange){background:#fff;color:#92534c;border-color:#e1cbc6}
  .calm-ui :is(.btn.danger,.btn-danger,.btn.red,.btn.orange):hover{background:#faf0ed;color:#80473f}
  .calm-ui .btn.ghost{background:transparent;border-color:transparent}
  .calm-ui :is(.hero,.portal-hero){background:transparent;min-height:0;display:block;padding:34px 0 26px;border-bottom:1px solid var(--calm-line);overflow:visible}
  .calm-ui :is(.hero,.portal-hero,.form-container,.card)::before{display:none}
  .calm-ui :is(.hero h1,.portal-hero h1){color:var(--calm-ink);font-size:clamp(26px,3vw,36px);font-weight:650;line-height:1.35;letter-spacing:-.9px;max-width:980px}
  .calm-ui :is(.eyebrow,.portal-eyebrow){color:var(--calm-accent);font-size:10px;letter-spacing:1.4px;margin-bottom:9px}
  .calm-ui :is(.lead,.hero-desc,.portal-hero p){color:var(--calm-muted);font-size:13px;line-height:1.75;max-width:780px;margin-top:12px}
  .calm-ui :is(.panel,.section-panel,.article-panel,.form-container,.card){background:#fff;border:1px solid var(--calm-line);color:var(--calm-ink);border-radius:8px;box-shadow:none}
  .calm-ui :is(input:not([type="hidden"]):not([type="color"]),select,textarea){background:#fff;color:var(--calm-ink);border:1px solid var(--calm-line);border-radius:5px;box-shadow:none;min-width:0}
  .calm-ui :is(input,select,textarea):focus{outline:2px solid #c2cfbf;outline-offset:1px;border-color:var(--calm-accent);background:#fff}
  .calm-ui :is(a,button):focus-visible{outline:2px solid var(--calm-accent);outline-offset:3px}
  .calm-ui input::placeholder{color:#8a948c}
  .calm-ui :is(.label,.field label,.help-text,.footer-note,.meta-line,.version,.card-meta,.toolbar-info){color:var(--calm-muted);letter-spacing:0;text-transform:none}
  .calm-ui :is(.toolbar,.card-hd){background:#fff;border-color:var(--calm-line)}
  .calm-ui :is(.toolbar-title h2,.card-title,.card h3){color:var(--calm-ink);font-weight:650}
  .calm-ui :is(.toolbar-title p,.card .desc,.card-preview,.preview-cell){color:var(--calm-muted)}
  .calm-ui :is(.empty,.empty-state){background:#fff;border-color:var(--calm-line);color:var(--calm-muted)}
  .calm-ui .badge{background:var(--calm-soft);border-color:var(--calm-line);color:var(--calm-accent);border-radius:4px;letter-spacing:0;text-transform:none}
  .calm-ui :is(.table-view table,.tbl){color:var(--calm-ink);border-color:var(--calm-line)}
  .calm-ui :is(.table-view th,.tbl th){background:#edf1e9;color:#526055;border-color:var(--calm-line);font-weight:600}
  .calm-ui :is(.table-view td,.tbl td){background:#fff;color:var(--calm-ink);border-color:var(--calm-line)}
  .calm-ui .table-view tr:hover td{background:#f7f8f3}
  .calm-ui .date-cell{color:var(--calm-muted);font-variant-numeric:tabular-nums}
  .calm-ui #custom-cursor{display:none}
  .calm-ui,.calm-ui a,.calm-ui button{cursor:auto}
  .calm-ui a,.calm-ui button{cursor:pointer}
  /* Contract library: a compact summary, clear filters, quiet card hierarchy. */
  .calm-contracts .wrap{padding-top:0;max-width:1280px}
  .calm-contracts .hero-inner{gap:24px;align-items:center}
  .calm-contracts .summary-grid{background:transparent;gap:12px;border:0;margin-top:22px}
  .calm-contracts .summary-card{background:#fff;border:1px solid var(--calm-line);border-radius:7px;padding:15px 18px}
  .calm-contracts .summary-card span{color:var(--calm-muted);margin-bottom:7px;letter-spacing:0;font-size:11px}
  .calm-contracts .summary-card b{color:var(--calm-ink);font-size:25px;font-weight:600}
  .calm-contracts .panel{margin-top:24px}
  .calm-contracts .toolbar{position:static;background:#fff;backdrop-filter:none;padding:20px}
  .calm-contracts .toolbar-info{white-space:normal;max-width:310px;font-size:12px}
  .calm-contracts .tabs{background:#fff;padding:16px 20px;gap:7px}
  .calm-contracts .tab{border-color:var(--calm-line);background:#fff;color:var(--calm-muted);border-radius:5px;font-weight:500;letter-spacing:0;text-transform:none;font-size:11px;min-height:31px;max-width:100%;white-space:normal;text-align:left}
  .calm-contracts .tab:hover,.calm-contracts .tab.active{background:var(--calm-soft);color:var(--calm-accent);border-color:#b6c3b4}
  .calm-contracts .grid{background:#f8f9f5;padding:20px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(275px,1fr))}
  .calm-contracts .card{min-height:225px;padding:22px}
  .calm-contracts .card:hover{background:#fff;border-color:#b8c6b7;box-shadow:0 3px 12px rgba(41,51,46,.04)}
  .calm-contracts .card h3{font-size:17px;line-height:1.5;margin-bottom:10px}
  .calm-contracts .card .desc{min-height:28px;margin-bottom:10px;font-size:12px}
  .calm-contracts .badge{max-width:210px}
  .calm-contracts .meta-line{border-color:var(--calm-line);font-size:11px}
  .calm-contracts .btns .btn{min-height:32px;padding:7px 11px;font-size:11px}
  .calm-contracts #preview{background:rgba(36,47,40,.38);backdrop-filter:blur(3px)}
  .calm-contracts #preview .inner{background:#fff;color:var(--calm-ink);border-radius:9px;border-color:var(--calm-line);box-shadow:0 16px 50px rgba(36,47,40,.16)}
  .calm-contracts :is(.modal-head,.modal-body,.files-section,.upload-box){background:#fff;border-color:var(--calm-line);color:var(--calm-ink)}
  .calm-contracts #pv-title{color:var(--calm-ink);font-size:24px}
  .calm-contracts :is(.muted,.files-section h3){color:var(--calm-muted)}
  .calm-contracts #pv-content{background:#fff;color:var(--calm-ink)}
  .calm-contracts #pv-content :is(h1,h2,h3){color:var(--calm-ink);font-weight:650;letter-spacing:0;line-height:1.5}
  .calm-contracts #pv-content h1{font-size:24px}
  .calm-contracts #pv-content h2{font-size:18px;margin-top:26px}
  .calm-contracts #pv-content h3{font-size:15px}
  .calm-contracts #pv-content :is(th,td){color:var(--calm-ink);border-color:var(--calm-line)}
  .calm-contracts #pv-content th{background:var(--calm-soft)}
  .calm-contracts .file-item{color:var(--calm-ink)}
  /* Confirmations: screen controls surround a conventional A4 document. */
  .calm-confirm .portal-hero,.calm-statement .portal-hero{padding:28px 32px 24px}
  .calm-confirm .container{padding-top:26px}
  .calm-confirm .vars{background:#fff;border:1px solid var(--calm-line);border-radius:8px;gap:12px;padding:18px;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:end}
  .calm-confirm .vars label,.calm-statement .vars label{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--calm-muted);font-size:11px;font-weight:600;letter-spacing:0}
  .calm-confirm .vars .input{width:100%;height:40px;min-height:40px;font-size:13px;padding:0 11px}
  .calm-confirm .document-preview{width:190mm;max-width:100%;padding:14mm 12mm 14mm;border:1px solid var(--calm-line);box-shadow:0 7px 28px rgba(41,51,46,.06);min-height:270mm}
  .calm-confirm .doc-kicker{display:flex;justify-content:space-between;gap:12px;margin-bottom:25px;font-size:9px;letter-spacing:1.2px;color:var(--calm-muted);text-transform:uppercase}
  .calm-confirm .title{font-size:27px;font-weight:700;letter-spacing:1px;line-height:1.4;margin-bottom:22px;color:#25342b}
  .calm-confirm .info-line{justify-content:space-between;gap:14px;border-top:2px solid #52675b;border-bottom:1px solid #d2d9d0;padding:11px 0;font-size:11px;margin-bottom:24px}
  .calm-confirm .info-pair{display:flex;gap:9px;align-items:baseline}
  .calm-confirm .info-line .k{color:#69746d;font-weight:500}
  .calm-confirm .info-line .v{color:#29332e;font-weight:600;overflow-wrap:anywhere}
  .calm-confirm .content{font-size:13px;line-height:1.85;white-space:normal;color:#29332e}
  .calm-confirm .content p{margin:9px 0!important;line-height:1.85!important}
  .calm-confirm .content :is(h1,h2,h3){color:#354b3b;margin:22px 0 10px!important;font-weight:650;line-height:1.5!important}
  .calm-confirm .content h2{font-size:17px;padding-bottom:7px;border-bottom:1px solid #dce1d9}
  .calm-confirm .content h3{font-size:15px}
  .calm-confirm :is(.content table,.meta){table-layout:auto;font-size:11.5px;margin:15px 0 20px;border-collapse:collapse;width:100%}
  .calm-confirm :is(.content th,.content td,.meta th,.meta td){border:1px solid #cad3c7;padding:8px 9px;line-height:1.65;word-break:normal;overflow-wrap:break-word;vertical-align:middle;color:#29332e}
  .calm-confirm :is(.content th,.meta th){background:#edf1e9;color:#455949;font-weight:650}
  .calm-confirm .content tbody tr:nth-child(even){background:#fafbf8}
  .calm-confirm .footer-wrap{border-color:#cad3c7;gap:26px;margin-top:35px;padding-top:20px;grid-template-columns:1fr 150px}
  .calm-confirm .footer-wrap::before{display:none}
  .calm-confirm .org-card{font-size:10px;line-height:1.75;color:#69746d}
  .calm-confirm .org-card strong{font-size:12px;font-weight:650;color:#29332e}
  .calm-confirm .kvs{color:#69746d;font-size:10px}
  .calm-confirm .seal-box .label{font-size:11px;color:#69746d}
  .calm-confirm .seal{width:65px;max-width:65px}
  .calm-confirm .signer-under-seal{font-size:11px;font-weight:600}
  .calm-confirm .page-wm::before{opacity:.025;font-weight:650}
  /* Contract assembly: labelled inputs and a clean paper surface. */
  .calm-statement .container{margin-top:26px;background:#fff!important;border:1px solid var(--calm-line);border-radius:8px;box-shadow:0 6px 24px rgba(41,51,46,.04)}
  .calm-statement #docH1{font-size:28px!important;letter-spacing:1px!important;text-indent:0!important;color:var(--calm-ink)}
  .calm-statement .document-preview{padding:14mm 12mm;max-width:100%;box-shadow:0 5px 20px rgba(41,51,46,.06);border:1px solid var(--calm-line)}
  .calm-statement .letter-header-block{gap:24px;font-size:12px}
  .calm-statement .vars{background:#f6f7f2!important;border:1px solid var(--calm-line)!important;border-radius:7px;padding:18px!important;gap:12px!important}
  .calm-statement .vars input{width:100%;font-size:13px;padding:11px;background:#fff!important;color:var(--calm-ink)!important;border-color:var(--calm-line)!important;border-radius:5px!important}
  .calm-statement .vars .apply{align-self:end}
  .calm-statement .top-actions{display:none!important}
  .calm-statement .apply{background:var(--calm-accent)!important;border-color:var(--calm-accent)!important;color:#fff!important;border-radius:5px!important;letter-spacing:0!important}
  .calm-statement .note{background:#f5f7f0;color:var(--calm-muted);border-color:var(--calm-line);font-size:12px;line-height:1.8}
  .calm-statement .note code{background:#eaf0e2!important;color:#52675b!important}
  .calm-statement .warn{color:#92534c!important}
  .calm-statement .page-wm{opacity:.03}
  .calm-statement .letter-header-block{border-color:var(--calm-line)}
  /* Schedule form and archive detail. */
  .calm-schedule .form-wrap{padding-top:24px}
  .calm-schedule .form-container{padding:30px;gap:24px}
  .calm-schedule .field label{color:#526055;font-size:12px;font-weight:600}
  .calm-schedule .help-text{font-size:11px;line-height:1.7}
  .calm-schedule .field input{height:43px}
  .calm-schedule .field input[type=file]{height:auto;background:#f8f9f4;padding:12px}
  .calm-schedule :is(.toastui-editor-defaultUI,.toastui-editor-toolbar,.toastui-editor-mode-switch){background:#fff;border-color:var(--calm-line)}
  .calm-schedule .form-actions{border-top:1px solid var(--calm-line);padding-top:20px}
  .calm-entry-list .portal-shell{padding-top:0}
  .calm-entry-list .toolbar{padding:24px 0;background:transparent;box-shadow:none}
  .calm-entry-list .toolbar-title h2{font-size:16px;letter-spacing:0}
  .calm-entry-list .toolbar-title p{font-size:12px}
  .calm-entry-list .table-view th{font-size:11px;text-transform:none;letter-spacing:0;padding:14px 18px}
  .calm-entry-list .table-view td{padding:18px;font-size:13px;line-height:1.8}
  .calm-entry-list .action-inline .btn{font-size:11px;min-height:32px;padding:6px 10px}
  .calm-entry-list .entry-card{background:#fff;color:var(--calm-ink);border:1px solid var(--calm-line);border-radius:7px;padding:20px}
  .calm-entry-list :is(.card-title,.card-date,.card-preview,.attachment-note){color:var(--calm-ink)}
  .calm-entry-list .card-preview,.calm-entry-list .attachment-note{color:var(--calm-muted)}
  .calm-entry-view .hero{padding-bottom:24px}
  .calm-entry-view .meta{color:var(--calm-muted);font-size:11px;letter-spacing:0}
  .calm-entry-view .meta span{background:#edf1e9;border-color:var(--calm-line);color:var(--calm-muted);overflow-wrap:anywhere}
  .calm-entry-view .article-wrap{padding-top:25px}
  .calm-entry-view .article-panel{padding:36px}
  .calm-entry-view :is(#plain-view,.toastui-editor-contents){color:var(--calm-ink);font-size:14px;line-height:1.85}
  .calm-entry-view #viewer,.calm-entry-view #plain-view,.calm-entry-view #viewer .toastui-editor-contents{color:var(--calm-ink)!important;background:#fff!important;font-size:14px!important;line-height:1.85!important}
  .calm-entry-view #viewer :is(h1,h2,h3,h4,p,li,td,th){color:var(--calm-ink)!important}
  .calm-entry-view #viewer .toastui-editor-contents *{color:inherit!important}
  .calm-entry-view #viewer .toastui-editor-contents th{color:#52675b!important}
  .calm-entry-view #viewer :is(th,td){border-color:#d5ddcf!important;background:#fff!important;line-height:1.7!important}
  .calm-entry-view #viewer th{background:#edf1e9!important;color:#52675b!important}
  .calm-entry-view #viewer blockquote{color:var(--calm-ink)!important;background:#f3f6ed!important;border-color:#8fa181!important}
  .calm-entry-view #viewer :is(pre,code){color:#435742!important;background:#f4f7ef!important;border-color:#d5ddcf!important}
  .calm-entry-view .attachments{background:#f7f8f3;border-color:var(--calm-line);color:var(--calm-ink);border-radius:6px}
  .calm-entry-view .attachments a{background:#fff;border-color:var(--calm-line);color:var(--calm-accent)}
  .calm-entry-view .doc-actions{border-color:var(--calm-line)}
  /* Project memo library: compact colour markers, comfortable reading. */
  .calm-memo .wrap{max-width:1220px;padding:30px 24px 64px}
  .calm-memo .topbar-inner{max-width:1172px}
  .calm-memo .topbar .actions{flex-wrap:wrap}
  .calm-memo .dot{width:5px;height:25px;border-radius:2px;background:var(--calm-accent)}
  .calm-memo .card-hd{padding:25px 26px 20px;border-bottom:1px solid var(--calm-line)}
  .calm-memo .card-hd h1{font-size:26px;line-height:1.45;font-weight:650}
  .calm-memo .card-bd{padding:24px 26px}
  .calm-memo .card-meta{font-size:12px;line-height:1.7}
  .calm-memo .row{border-radius:6px;padding:18px;background:#fff;border-color:var(--calm-line)}
  .calm-memo .row:hover{background:#fafbf7;border-color:#bac7b8}
  .calm-memo .row h3{font-size:15px;font-weight:600;white-space:normal;line-height:1.6}
  .calm-memo .project-row{border-radius:6px;padding:18px 20px 18px 0;gap:16px}
  .calm-memo .project-color-bar{width:7px}
  .calm-memo .project-color-bar::after{display:none}
  .calm-memo .project-main{padding-left:23px;gap:7px}
  .calm-memo .project-title{font-weight:600;font-size:15px}
  .calm-memo .project-meta{font-size:11px}
  .calm-memo .searchbar{padding:12px 15px;background:#f8f9f4;min-height:44px}
  .calm-memo .searchbar input{border:0!important;background:transparent!important;font-size:13px;min-height:22px}
  .calm-memo .searchbar .hint{flex-shrink:0;white-space:nowrap}
  .calm-memo .searchbar input:focus{outline:0}
  .calm-memo .searchbar:focus-within{outline:2px solid #c2cfbf;outline-offset:1px}
  .calm-memo .grid2{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:20px;align-items:start}
  .calm-memo .content-view{font-size:14px;line-height:1.9;max-width:940px;margin:0 auto}
  .calm-memo .content-view a{color:var(--calm-accent)}
  .calm-memo .content-view blockquote{background:#f1f4ec!important;border-left-color:#83977c!important;border-radius:0 5px 5px 0!important;color:var(--calm-ink)}
  .calm-memo .attachments-inline .attach-row{background:#f8f9f4;border:1px solid var(--calm-line);border-radius:5px;padding:11px 13px;flex-wrap:wrap}
  .calm-memo :is(.attachments-inline,[id^=attach-]) form button{color:#92534c!important;border-color:#e1cbc6!important;background:#fff!important;border-radius:4px;padding:4px 8px!important}
  .calm-memo .row .right{flex-wrap:wrap}
  /* Supervision: legible registers with restrained status colours. */
  .calm-supervision .hero{padding:0;background:#fff}
  .calm-supervision .hero .inner{padding:20px 24px;gap:10px}
  .calm-supervision .hero .title{font-size:20px;line-height:1.5;font-weight:650;letter-spacing:-.4px;max-width:650px}
  .calm-supervision :is(.searchbar,.filters){padding:24px 24px 0}
  .calm-supervision :is(.searchbar form,.filters form){border-color:var(--calm-line);border-radius:7px;padding:13px;gap:10px;background:#fff}
  .calm-supervision .wrap{padding:20px 24px 64px}
  .calm-supervision .card{padding:23px;border-radius:7px}
  .calm-supervision .card:hover{transform:none;border-color:#b7c5b4;box-shadow:none;background:#fff}
  .calm-supervision .h3{font-size:17px;font-weight:650}
  .calm-supervision .meta{color:var(--calm-muted);font-size:12px}
  .calm-supervision .meta .row{background:transparent;border:0;color:var(--calm-muted);box-shadow:none}
  .calm-supervision .card-actions{border-color:var(--calm-line)}
  .calm-supervision .header-row{background:#eaf0e5;border-color:#d6dfd0;border-radius:5px;color:#526055;font-size:12px;padding:13px 15px;font-weight:600}
  .calm-supervision .row[data-status]{border-radius:5px;border-color:var(--calm-line);padding:16px 15px;font-size:13px;background:#fff}
  .calm-supervision .row[data-status]:hover{box-shadow:none;transform:none;border-color:#b7c5b4}
  .calm-supervision .cell-note{color:var(--calm-muted);font-size:12px;line-height:1.8}
  .calm-supervision .row[data-status=draft] .badge{background:#f5f3e9;border-color:#e1dbc4;color:#82734b}
  .calm-supervision .row[data-status=review] .badge{background:#eef1f4;border-color:#d6dee5;color:#5c6f81}
  .calm-supervision .row[data-status=approved] .badge{background:#edf3e8;border-color:#cfddc7;color:#526c4b}
  .calm-supervision .btn-danger{border-color:#e1cbc6;border-radius:5px;color:#92534c;font-size:11px;background:#fff;padding:5px 9px}
  .calm-supervision .input,.calm-supervision select{font-size:12px}
  .calm-supervision .register-note{width:min(1200px,100%);padding:25px 24px 0;margin:0 auto;color:var(--calm-muted);font-size:12px}
  .calm-schedule .submit-row button{background:var(--calm-accent);border-color:var(--calm-accent);color:#fff;letter-spacing:0;text-transform:none;border-radius:6px;min-height:42px;font-weight:600}
  .calm-schedule input[type=file]::file-selector-button{background:var(--calm-soft);color:var(--calm-accent);border:1px solid #c6d1bf;border-radius:4px;font-weight:500;font-size:12px}
  .calm-statement .vars-caption{grid-column:1/-1;margin:0 0 3px;padding-bottom:9px;border-bottom:1px solid var(--calm-line);font-size:14px;font-weight:650;color:var(--calm-ink)}
  /* The active supervision module uses a separate register and tabbed hub. */
  .calm-supv{--app-bg:var(--calm-bg);--panel:#fff;--panel-2:#f7f9f2;--ok:#607954;--warning:#907848}
  .calm-supv .toolbar{height:68px;background:#fff;border-color:var(--calm-line);padding:0 24px;box-shadow:none;backdrop-filter:none;gap:10px}
  .calm-supv .brand-mark{width:32px;height:32px;border-radius:5px;background:#f2f5eb}
  .calm-supv :is(.brand-title,.brand-info .title){font-weight:650;font-size:14px;color:var(--calm-ink)}
  .calm-supv .brand-info .firm{color:var(--calm-muted);font-size:10px}
  .calm-supv .tabbar{top:68px;background:#fff;border-color:var(--calm-line);box-shadow:none;backdrop-filter:none}
  .calm-supv .tabbar button{padding:14px 15px;font-size:12px;font-weight:500}
  .calm-supv .tabbar button.active{color:var(--calm-accent);border-bottom-color:#809574;font-weight:650;background:#f4f7ef}
  .calm-supv .tabbar button span{background:#809574!important;color:#fff!important}
  .calm-supv .main{padding:0 24px 64px}
  .calm-supv .main>.hero{padding:30px 0 26px;border:0}
  .calm-supv .stats{gap:14px;margin-bottom:24px}
  .calm-supv .stat-card,.calm-supv .dash-card{box-shadow:none;border-radius:7px;padding:18px 20px;border-color:var(--calm-line)}
  .calm-supv :is(.stat-card .num,.dash-card .num){font-weight:600;font-size:26px;color:var(--calm-ink)!important}
  .calm-supv .search-bar{background:#fff;border:1px solid var(--calm-line);border-radius:7px;padding:14px;gap:10px;flex-wrap:wrap;margin-bottom:22px}
  .calm-supv .search-bar input{min-width:210px;height:40px;font-size:12px}
  .calm-supv .search-bar select{height:40px;font-size:12px}
  .calm-supv .proj-grid{gap:17px}
  .calm-supv .proj-card{border-radius:8px;box-shadow:none;border-color:var(--calm-line)}
  .calm-supv .proj-card:hover{border-color:#b5c4ad;box-shadow:0 4px 15px rgba(41,51,46,.04)}
  .calm-supv .proj-card .ct{padding:20px;border-color:var(--calm-line)}
  .calm-supv .proj-card .ctitle{font-size:16px;font-weight:650;line-height:1.5;margin-bottom:7px}
  .calm-supv .proj-card .cmeta{font-size:11px;line-height:1.8}
  .calm-supv .proj-card .cb{padding:16px 20px}
  .calm-supv .proj-card .cf{padding:5px 20px 20px}
  .calm-supv .prog-bar{background:#e9eee2}
  .calm-supv .prog-fill{background:#819974}
  .calm-supv .btn-sm{background:#fff;color:var(--calm-ink);border-color:var(--calm-line);font-size:11px;border-radius:4px;padding:6px 12px}
  .calm-supv .btn-sm.primary{background:var(--calm-accent);border-color:var(--calm-accent);color:#fff}
  .calm-supv .btn.primary:hover{background:var(--calm-hover);border-color:var(--calm-hover)}
  .calm-supv .panel{background:transparent;border:0;box-shadow:none;border-radius:0;padding:26px 24px;max-width:1180px}
  .calm-supv .card{padding:24px;border-radius:7px;border-color:var(--calm-line)}
  .calm-supv .card[style*="background"]{background:#f8f8f2!important;border-color:#e1dfcd!important}
  .calm-supv .card[style*="background"] .card-head{color:#82754e!important}
  .calm-supv .card-head{font-size:14px;font-weight:650;margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--calm-line)}
  .calm-supv .fld-lbl{font-size:11px;margin-bottom:6px;color:var(--calm-muted)}
  .calm-supv .fi{height:39px;font-size:13px;color:var(--calm-ink);border-color:var(--calm-line);border-radius:5px}
  .calm-supv .fi[readonly]{background:#f5f7ef}
  .calm-supv :is(.g2,.g3,.g4){gap:14px}
  .calm-supv :is(.bldg-block,.person-block,.assign-block,.dong-block){background:#f8faf4;border-color:var(--calm-line)}
  .calm-supv .badge.blue{background:#edf1e9;color:#52675b;border-color:#ccd8c5}
  .calm-supv .badge.green{background:#edf4e6;color:#607954;border-color:#cddfc1}
  .calm-supv .badge.red{background:#fbf0ec;color:#92534c;border-color:#e3cfc8}
  .calm-supv .badge.amber{background:#f7f3e8;color:#8b774c;border-color:#e6deca}
  .calm-supv .badge.gray,.calm-supv .badge.purple{background:#f3f5ed;color:#69746d;border-color:#dce1d9}
  .calm-supv .lr-block.req{background:#f1f5eb;border-color:#d2ddc7}
  .calm-supv .lr-block.noreq{background:#f4f7ef;border-color:#d2ddc7}
  .calm-supv .lr-block.warn{background:#f9f5e9;border-color:#e5ddc4}
  .calm-supv .doc-item{background:#f7f9f2;border-color:var(--calm-line)}
  .calm-supv .doc-item:hover{background:#eef3e6;border-color:#b8c8ac}
  .calm-supv .doc-icon.doc,.calm-supv .doc-icon.other{background:#edf1e9;color:#52675b}
  .calm-supv .doc-cat-btn{background:#fff;border-color:var(--calm-line);color:var(--calm-muted)}
  .calm-supv .doc-cat-btn.active{background:var(--calm-accent);border-color:var(--calm-accent);color:#fff}
  .calm-supv .tbl th,.calm-supv .sched-tbl th{background:#edf1e9;color:#52675b;font-weight:600}
  .calm-supv .tbl tbody tr:hover{background:#f8faf4}
  .calm-supv .modal-overlay{background:rgba(41,51,46,.32)}
  .calm-supv .modal{border-color:var(--calm-line);border-radius:8px;box-shadow:0 16px 45px rgba(41,51,46,.12)}
  .calm-supv .modal h2{font-weight:650}
  .calm-supv .save-status.ok{color:#607954}
  .calm-supv .save-status.dirty{color:#907848}
  .calm-supv .save-status.err{color:#92534c}
  @media(max-width:900px){
    .calm-ui :is(.topbar,.topbar-main,.portal-topbar){gap:12px;flex-wrap:wrap;padding:14px 18px}
    .calm-ui :is(.hero-inner,.portal-hero-inner){grid-template-columns:1fr;gap:18px}
    .calm-ui :is(.hero h1,.portal-hero h1){font-size:27px}
    .calm-contracts .wrap{padding-left:18px;padding-right:18px}
    .calm-contracts .toolbar{flex-wrap:wrap}
    .calm-contracts .toolbar-info{max-width:none}
    .calm-contracts .summary-grid{grid-template-columns:repeat(2,1fr)}
    .calm-confirm .vars{grid-template-columns:repeat(2,minmax(0,1fr))}
    .calm-confirm .vars .apply{grid-column:1/-1}
    .calm-confirm .document-preview{padding:25px 20px;min-height:0}
    .calm-confirm .footer-wrap{grid-template-columns:1fr 120px}
    .calm-confirm .seal-box{justify-self:end;border:0;padding:0}
    .calm-confirm .content{font-size:12px}
    .calm-confirm .info-line{gap:8px}
    .calm-confirm .doc-kicker{font-size:8px;letter-spacing:.5px}
    .calm-memo .grid2{grid-template-columns:1fr}
    .calm-memo .topbar-inner{align-items:flex-start;flex-wrap:wrap}
    .calm-memo .card-bd,.calm-memo .card-hd{padding:20px}
    .calm-memo .project-actions{padding-left:23px;flex-wrap:wrap}
    .calm-memo .row>a{flex-wrap:wrap}
    .calm-memo .project-title{white-space:normal}
    .calm-entry-view .article-panel{padding:22px}
    .calm-supervision .hero .inner{flex-wrap:wrap}
    .calm-supervision .hero .title{width:100%;order:-1}
    .calm-supv .toolbar{padding:0 16px}
    .calm-supv .brand-info .title{max-width:220px}
    .calm-supv .panel{padding:20px 16px}
  }
  @media(max-width:550px){
    .calm-ui :is(.hero,.portal-hero){padding-top:26px;padding-bottom:22px}
    .calm-ui :is(.portal-hero){padding-left:18px;padding-right:18px}
    .calm-schedule .form-container{grid-template-columns:1fr;padding:22px}
    .calm-contracts .grid{padding:15px;grid-template-columns:1fr}
    .calm-contracts .card{min-height:0}
    .calm-confirm .vars{grid-template-columns:1fr}
    .calm-confirm .footer-wrap{grid-template-columns:1fr}
    .calm-confirm .seal-box{justify-self:end;width:auto}
    .calm-confirm .title{font-size:24px}
    .calm-confirm :is(.content th,.content td){font-size:10px;padding:6px 4px}
    .calm-statement .vars{grid-template-columns:1fr}
    .calm-memo .wrap{padding:20px 12px 50px}
    .calm-supervision :is(.searchbar,.filters,.wrap){padding-left:16px;padding-right:16px}
    .calm-supv .main{padding-left:16px;padding-right:16px}
    .calm-supv .proj-grid{grid-template-columns:1fr}
    .calm-supv .card{padding:20px}
    .calm-supv .search-bar input{width:100%;min-width:0;flex-basis:100%}
  }
}
@media print{
  .calm-ui :is(.doc-kicker){color:#58675c;font-size:9px;letter-spacing:1px;margin-bottom:20px}
  .calm-confirm .info-line{display:flex;justify-content:space-between;border-top:2px solid #52675b;border-bottom:1px solid #cbd5c8}
  .calm-confirm .info-pair{display:flex;gap:9px;align-items:baseline}
  .calm-confirm .title{font-size:24px!important;font-weight:700;letter-spacing:1px}
  .calm-confirm .content{white-space:normal;font-size:10pt!important;line-height:1.7!important}
  .calm-confirm .content p{line-height:1.7!important}
  .calm-confirm :is(.content th,.content td){border-color:#bfcbb9!important;font-size:9pt!important}
  .calm-confirm .content th{background:#edf1e9!important}
  .calm-confirm .content h2{font-size:13pt;margin-top:18px!important}
  .calm-confirm .footer-wrap{grid-template-columns:1fr 150px!important;border-color:#cbd5c8!important}
  .calm-confirm .footer-wrap::before{display:none!important}
  .calm-confirm .page-wm::before{opacity:.025!important}
  .calm-statement .vars{display:none!important}
  .calm-memo .topbar{display:none!important}
  .calm-memo .wrap{margin:0;padding:0;width:100%}
  .calm-memo .card{border:0;box-shadow:none}
  .calm-memo .content-view{font-size:10.5pt;line-height:1.75}
  .calm-memo .attach-row form{display:none!important}
  .calm-memo .card-hd{border-bottom:1px solid #cbd5c8;padding:0 0 18px}
  .calm-memo .card-bd{padding:20px 0}
}
