:root{--sdh-amber: #d97a1f;--sdh-amber-soft: #fbeedd;--sdh-amber-deep: #a55712;--sdh-sage: #7a9a3f;--sdh-sage-soft: #f0f4e6;--ink: #1c1916;--ink-2: #4a443d;--ink-3: #7a716a;--rule: #e8e2d8;--rule-strong: #cdc4b8;--paper: #faf6ef;--card: #ffffff;--shade: #f3ede2;--ok: #4a7c2a;--warn: #c47600;--err: #b3261e;--info: #2c6e9b;--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-sm: 4px;--r-md: 8px;--r-lg: 14px;--shadow-1: 0 1px 2px rgba(28, 25, 22, .05), 0 1px 3px rgba(28, 25, 22, .05);--shadow-2: 0 4px 14px rgba(28, 25, 22, .07), 0 2px 4px rgba(28, 25, 22, .04);--shadow-3: 0 12px 40px rgba(28, 25, 22, .12), 0 4px 12px rgba(28, 25, 22, .06)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern","liga","ss01"}a{color:var(--sdh-amber-deep);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .15s ease,color .15s ease}a:hover{border-bottom-color:var(--sdh-amber);color:var(--sdh-amber)}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;color:var(--ink);line-height:1.15;margin:0}h1{font-size:2.4rem;font-weight:600;letter-spacing:-.02em}h2{font-size:1.75rem}h3{font-size:1.3rem}h4{font-size:1.1rem}p{margin:0 0 1em}.app-shell{display:flex;flex-direction:column;min-height:100vh}.page-container{width:100%;max-width:1180px;margin:0 auto;padding:var(--s-6) var(--s-5) var(--s-7)}.app-header{background:var(--card);border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:50}.app-header__inner{max-width:1180px;margin:0 auto;padding:0 var(--s-5);display:flex;align-items:center;gap:var(--s-6);height:68px;position:relative}.app-brand{font-family:var(--font-display);font-weight:600;font-size:1.25rem;color:var(--ink);letter-spacing:-.01em;border:none}.app-brand__sub{display:block;font-family:var(--font-body);font-size:.7rem;text-transform:uppercase;letter-spacing:.18em;color:var(--sdh-amber);font-weight:600;margin-top:1px}.app-nav{display:flex;align-items:center;gap:var(--s-2);margin-left:auto;flex-wrap:nowrap}.app-nav__link{color:var(--ink-2);font-weight:500;font-size:.95rem;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);border:none;position:relative;font-family:inherit;white-space:nowrap}.app-nav__link:hover{background:var(--shade);color:var(--ink)}.app-nav__link.is-active{color:var(--ink)}.app-nav__link.is-active:after{content:"";position:absolute;left:var(--s-3);right:var(--s-3);bottom:-22px;height:2px;background:var(--sdh-amber)}.app-nav__link--btn{background:none;cursor:pointer}.app-nav__trigger{display:none;margin-left:auto;background:transparent;border:1px solid var(--rule);border-radius:var(--r-sm);padding:8px 10px;cursor:pointer;align-items:center;justify-content:center}.app-nav__trigger:hover{background:var(--shade)}.app-nav__trigger:active{background:var(--rule)}.hamburger{display:inline-block;width:22px;height:16px;position:relative}.hamburger>span{position:absolute;left:0;right:0;height:2px;background:var(--ink);border-radius:2px;transition:transform .2s ease,opacity .2s ease,top .2s ease}.hamburger>span:nth-child(1){top:1px}.hamburger>span:nth-child(2){top:7px}.hamburger>span:nth-child(3){top:13px}.hamburger.is-open>span:nth-child(1){top:7px;transform:rotate(45deg)}.hamburger.is-open>span:nth-child(2){opacity:0}.hamburger.is-open>span:nth-child(3){top:7px;transform:rotate(-45deg)}.app-nav__panel{display:none;position:absolute;top:100%;right:var(--s-4);min-width:220px;background:var(--card);border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:var(--shadow-3);padding:var(--s-2);margin-top:8px;flex-direction:column;z-index:60;animation:dropdown-in .15s ease}.app-nav__panel.is-open{display:flex}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.app-nav__panel-link{display:block;text-align:left;padding:var(--s-3) var(--s-3);font-size:1rem;font-weight:500;color:var(--ink-2);background:none;border:none;border-radius:var(--r-sm);cursor:pointer;font-family:inherit;text-decoration:none;width:100%}.app-nav__panel-link:hover{background:var(--shade);color:var(--ink)}.app-nav__panel-link.is-active{background:var(--sdh-amber-soft);color:var(--sdh-amber-deep)}.app-nav__panel-link--btn{border-top:1px solid var(--rule);margin-top:var(--s-2);padding-top:var(--s-3);color:var(--err)}@media (max-width: 760px){.app-nav--desktop{display:none}.app-nav__trigger{display:inline-flex}.app-header__inner{padding:0 var(--s-4);gap:var(--s-3);height:60px}.app-brand{font-size:1.05rem}.app-brand__sub{font-size:.62rem;letter-spacing:.14em}}@media (min-width: 761px) and (max-width: 1015px){.app-header__inner{gap:var(--s-4);padding:0 var(--s-4)}.app-brand{font-size:1.1rem}.app-brand__sub{font-size:.65rem;letter-spacing:.15em}.app-nav{gap:2px}.app-nav__link{font-size:.85rem;padding:6px 9px}}@media (min-width: 761px) and (max-width: 880px){.app-header__inner{gap:var(--s-3);padding:0 var(--s-3)}.app-brand{font-size:1rem}.app-brand__sub{display:none}.app-nav__link{font-size:.78rem;padding:5px 7px}}.env-banner{background:var(--info);color:#fff;text-align:center;font-size:.8rem;padding:4px;letter-spacing:.1em;text-transform:uppercase}.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--r-md);padding:var(--s-5);box-shadow:var(--shadow-1)}.card--quiet{background:transparent;border:1px solid var(--rule);box-shadow:none}.card__title{font-family:var(--font-display);font-size:1.4rem;margin-bottom:var(--s-2)}.card__subtitle{color:var(--ink-3);font-size:.9rem;margin-bottom:var(--s-4)}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-5);margin-bottom:var(--s-6);padding-bottom:var(--s-5);border-bottom:1px solid var(--rule)}.page-header__title{font-family:var(--font-display);font-size:2.2rem;font-weight:500;letter-spacing:-.02em}.page-header__eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;color:var(--sdh-amber);font-weight:600;margin-bottom:var(--s-2)}.page-header__sub{color:var(--ink-3);font-size:.95rem;margin-top:var(--s-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);font-family:var(--font-body);font-weight:600;font-size:.95rem;padding:10px 20px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;transition:all .15s ease;background:var(--card);color:var(--ink)}.btn:hover{background:var(--shade)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--sdh-amber);color:#fff;border-color:var(--sdh-amber)}.btn--primary:hover{background:var(--sdh-amber-deep);border-color:var(--sdh-amber-deep)}.btn--ghost{background:transparent;border-color:var(--rule-strong);color:var(--ink-2)}.btn--ghost:hover{background:var(--shade);color:var(--ink)}.btn--danger{background:var(--err);color:#fff;border-color:var(--err)}.btn--block{width:100%}.btn--lg{padding:14px 24px;font-size:1rem}.field{margin-bottom:var(--s-4)}.field__label{display:block;font-size:.82rem;font-weight:600;color:var(--ink-2);margin-bottom:6px;letter-spacing:.02em}.field__input,.field__textarea,.field__select{width:100%;padding:10px 12px;font-family:inherit;font-size:.95rem;background:var(--card);color:var(--ink);border:1px solid var(--rule-strong);border-radius:var(--r-sm);transition:border-color .15s,box-shadow .15s}.field__input:focus,.field__textarea:focus,.field__select:focus{outline:none;border-color:var(--sdh-amber);box-shadow:0 0 0 3px var(--sdh-amber-soft)}.field__textarea{min-height:120px;resize:vertical}.field__hint{font-size:.82rem;color:var(--ink-3);margin-top:4px}.field__error{font-size:.85rem;color:var(--err);margin-top:4px}.table{width:100%;border-collapse:collapse;font-size:.95rem}.table th,.table td{padding:var(--s-3) var(--s-4);text-align:left;border-bottom:1px solid var(--rule)}.table th{font-weight:600;color:var(--ink-2);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;background:var(--shade)}.table tbody tr:hover{background:var(--shade)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .center{text-align:center}.dl-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5)}.dl-grid dl{margin:0;display:grid;grid-template-columns:minmax(140px,max-content) 1fr;row-gap:var(--s-3);column-gap:var(--s-4)}.dl-grid dt{color:var(--ink-3);font-size:.88rem;font-weight:500}.dl-grid dd{margin:0;font-weight:500;color:var(--ink)}@media (max-width: 720px){.dl-grid{grid-template-columns:1fr}}.alert{padding:var(--s-3) var(--s-4);border-radius:var(--r-sm);border-left:3px solid;margin-bottom:var(--s-4);font-size:.95rem;display:flex;align-items:flex-start;gap:var(--s-3)}.alert__close{margin-left:auto;background:none;border:none;color:inherit;cursor:pointer;font-size:1.2rem;line-height:1;padding:0 var(--s-2);opacity:.6}.alert__close:hover{opacity:1}.alert--info{background:#e8f1f7;border-color:var(--info);color:#163c5a}.alert--ok{background:#e8f3df;border-color:var(--ok);color:#2a4818}.alert--warn{background:#fdf3e1;border-color:var(--warn);color:#5a3500}.alert--err{background:#fbe9e7;border-color:var(--err);color:#6a1410}.login-shell{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}.login-aside{background:linear-gradient(135deg,#2c2620,#1c1916);color:#fff;padding:var(--s-8) var(--s-7);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-aside:after{content:"";position:absolute;width:600px;height:600px;bottom:-200px;right:-200px;background:radial-gradient(circle,rgba(217,122,31,.25) 0%,transparent 70%);pointer-events:none}.login-aside__brand{font-family:var(--font-display);font-size:1.6rem;font-weight:600;letter-spacing:-.01em}.login-aside__quote{font-family:var(--font-display);font-style:italic;font-size:1.6rem;line-height:1.4;font-weight:400;position:relative;z-index:1;max-width:30em}.login-aside__quote:before{content:'"';font-size:4rem;color:var(--sdh-amber);position:absolute;left:-2rem;top:-1.2rem;font-style:normal;line-height:1}.login-aside__caption{font-size:.85rem;color:#fff9;letter-spacing:.1em;text-transform:uppercase}.login-main{display:flex;align-items:center;justify-content:center;padding:var(--s-7) var(--s-5)}.login-card{width:100%;max-width:380px}.login-card__title{font-family:var(--font-display);font-size:2.4rem;font-weight:500;letter-spacing:-.02em;margin-bottom:var(--s-2)}.login-card__subtitle{color:var(--ink-3);margin-bottom:var(--s-6)}@media (max-width: 860px){.login-shell{grid-template-columns:1fr}.login-aside{display:none}}.progress{width:100%;height:8px;background:var(--rule);border-radius:999px;overflow:hidden}.progress__fill{height:100%;background:linear-gradient(90deg,var(--sdh-sage) 0%,var(--sdh-amber) 100%);transition:width .4s ease}.progress-row{display:flex;align-items:center;gap:var(--s-4);margin:var(--s-4) 0 var(--s-6)}.progress-row__pct{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-2)}.schedule-legend{margin-top:var(--s-4);padding:var(--s-4);background:var(--shade);border-radius:var(--r-md);display:flex;flex-direction:column;gap:var(--s-3)}.schedule-legend__item{display:flex;gap:var(--s-3);align-items:flex-start;font-size:.85rem;color:var(--ink-2);line-height:1.5}.muted{color:var(--ink-3)}.amber{color:var(--sdh-amber)}.row{display:flex;gap:var(--s-4);flex-wrap:wrap}.row>*{flex:1;min-width:0}.spacer-sm{height:var(--s-4)}.spacer-md{height:var(--s-5)}.center-text{text-align:center}.flex-end{display:flex;justify-content:flex-end}.empty-state{text-align:center;padding:var(--s-7) var(--s-4);color:var(--ink-3)}.empty-state__icon{font-size:2rem;margin-bottom:var(--s-3);opacity:.4}.spinner{width:20px;height:20px;border:2px solid var(--rule-strong);border-top-color:var(--sdh-amber);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}.spinner--sm{width:14px;height:14px;border-width:2px}.spinner--lg{width:36px;height:36px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.progress-bar{position:fixed;top:0;left:0;right:0;height:3px;background:transparent;z-index:1000;pointer-events:none}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--sdh-amber) 0%,var(--sdh-amber-deep) 100%);box-shadow:0 0 8px #d97a1f80;transition:width .2s ease-out}.processing-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c191673;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:200;animation:overlay-fade .15s ease}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}.processing-overlay__card{background:var(--card);border-radius:var(--r-lg);padding:var(--s-6) var(--s-5);box-shadow:var(--shadow-3);text-align:center;max-width:420px;width:calc(100% - 32px);animation:overlay-pop .2s ease}@keyframes overlay-pop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.processing-overlay__spinner{display:flex;justify-content:center;margin-bottom:var(--s-4)}.processing-overlay__label{font-family:var(--font-display);font-size:1.3rem;font-weight:500;color:var(--ink);margin-bottom:var(--s-2)}.processing-overlay__sub{color:var(--ink-3);font-size:.95rem}.inline-working{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--ink-3);font-size:.9rem}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--s-3);color:var(--ink-3)}.autocomplete{position:relative;width:100%}.autocomplete .field__input{padding-right:36px}.autocomplete__spinner{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none}.autocomplete__menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:70;max-height:320px;overflow-y:auto;background:var(--card);border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:var(--shadow-3);padding:4px;animation:dropdown-in .12s ease}.autocomplete__item{display:block;width:100%;text-align:left;background:none;border:none;padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;font-family:inherit;font-size:.92rem;color:var(--ink)}.autocomplete__item.is-active,.autocomplete__item:hover{background:var(--sdh-amber-soft)}.autocomplete__item-primary{font-weight:600;color:var(--ink);margin-bottom:2px}.autocomplete__item-secondary{font-size:.85rem;color:var(--ink-3);display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.autocomplete__item-tag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:var(--shade);color:var(--ink-3)}.autocomplete__item-tag--ok{background:var(--sdh-sage-soft);color:#4a6020}.autocomplete__empty{padding:14px;text-align:center;color:var(--ink-3);font-size:.9rem}.autocomplete__empty--err{color:var(--err)}.doc-tabs{display:flex;gap:var(--s-2);border-bottom:1px solid var(--rule);margin-bottom:var(--s-5)}.doc-tab{background:none;border:none;padding:var(--s-3) var(--s-4);font-family:inherit;font-size:.95rem;font-weight:500;color:var(--ink-3);cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:var(--s-2)}.doc-tab:hover{color:var(--ink)}.doc-tab.is-active{color:var(--sdh-amber-deep)}.doc-tab.is-active:after{content:"";position:absolute;left:var(--s-4);right:var(--s-4);bottom:-1px;height:2px;background:var(--sdh-amber)}.doc-tab__count{background:var(--shade);color:var(--ink-3);font-size:.75rem;padding:1px 8px;border-radius:999px;font-weight:600}.doc-tab.is-active .doc-tab__count{background:var(--sdh-amber-soft);color:var(--sdh-amber-deep)}.doc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-3)}.doc-card{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--card);border:1px solid var(--rule);border-radius:var(--r-md);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .1s,box-shadow .15s;min-width:0}.doc-card:hover{border-color:var(--sdh-amber);box-shadow:var(--shadow-2);transform:translateY(-1px)}.doc-card__icon{flex-shrink:0;color:var(--sdh-amber)}.doc-card__title{font-weight:500;font-size:.82rem;line-height:1.35;min-width:0;overflow-wrap:anywhere;word-break:break-word}.pill{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.02em}.pill--amber{background:var(--sdh-amber-soft);color:var(--sdh-amber-deep)}.pill--sage{background:var(--sdh-sage-soft);color:#4a6020}.pill--rule{background:var(--shade);color:var(--ink-2)}.check{display:inline-block;width:22px;height:22px;border-radius:50%;background:var(--sdh-sage);position:relative;box-shadow:0 1px 2px #1c19161f}.check:after{content:"";position:absolute;left:7px;top:4px;width:6px;height:11px;border:solid white;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.app-footer{margin-top:auto;padding:var(--s-5);border-top:1px solid var(--rule);text-align:center;font-size:.85rem;color:var(--ink-3);background:var(--card)}@media (max-width: 760px){body{font-size:15px}.page-container{padding:var(--s-4) var(--s-3) var(--s-6)}.page-header{flex-direction:column;align-items:stretch;gap:var(--s-3);margin-bottom:var(--s-4);padding-bottom:var(--s-4)}.page-header__title{font-size:1.7rem}.page-header__sub{font-size:.9rem}h1{font-size:1.85rem}h2{font-size:1.4rem}h3{font-size:1.15rem}.card{padding:var(--s-4)}.card__title{font-size:1.2rem}.dl-grid{gap:var(--s-3)}.dl-grid dl{grid-template-columns:1fr;row-gap:var(--s-2)}.dl-grid dt{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.dl-grid dd{margin-bottom:var(--s-2)}.table{font-size:.9rem}.table th,.table td{padding:var(--s-2) var(--s-3);white-space:nowrap}.card{overflow-x:auto;-webkit-overflow-scrolling:touch}.row{flex-direction:column;gap:0}.row>*{width:100%;flex:1 1 auto!important}.btn{padding:12px 18px;font-size:.95rem}.btn--lg{padding:14px 20px}.field__input,.field__textarea,.field__select{font-size:16px;padding:12px}.login-aside{padding:var(--s-5)}.login-card__title{font-size:1.9rem}.login-main{padding:var(--s-5) var(--s-3)}.progress-row{flex-direction:column;align-items:stretch;gap:var(--s-2)}}@media (max-width: 380px){.app-brand__sub{display:none}.page-header__title{font-size:1.5rem}}
