@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--ink:#123a38;--deep:#0b302e;--mint:#e6f1e9;--cream:#f8f7f0;--paper:#fffef9;--gold:#dcbf76;--muted:#758a83;--line:#dfe9e0;--danger:#b45549;font-family:'DM Sans','Noto Sans SC',sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--cream)}button,input,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.19em;color:#8a9f91;text-transform:uppercase}.primary-button{background:var(--ink);color:white;border:0;border-radius:12px;padding:13px 20px;font-weight:700}.primary-button:hover{background:#21534c}.ghost-button{border:1px solid var(--line);background:white;border-radius:12px;padding:12px 18px;color:var(--ink);font-weight:700}.form-error{min-height:22px;color:var(--danger);font-size:13px}
.duck-login{min-height:100vh;background:#f5f5ed}.login-shell{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr);min-height:100vh}.login-story{background:var(--deep);color:white;position:relative;overflow:hidden;padding:36px 8% 26px;display:flex;flex-direction:column}.login-story:after{content:'';position:absolute;width:520px;height:520px;border:1px solid #ffffff20;border-radius:50%;left:-250px;bottom:-260px}.login-brand{display:flex;align-items:center;gap:12px;font-size:25px;font-weight:700;letter-spacing:-.04em}.login-brand img{width:42px;height:42px;object-fit:cover;border-radius:13px}.login-copy{margin-top:auto;position:relative;z-index:1}.login-copy .eyebrow{color:var(--gold)}.login-copy h1{font-size:clamp(38px,4.5vw,68px);line-height:1.18;letter-spacing:-.06em;margin:18px 0}.login-copy>p:last-child{font-size:16px;color:#ceded5}.login-art{height:min(31vw,290px);max-height:290px;margin:22px 0;position:relative;z-index:1;border-radius:24px;overflow:hidden}.login-art img{width:100%;height:100%;object-fit:cover}.login-foot{font-size:12px;color:#afc6b7;margin:0}.login-panel{display:grid;place-items:center;padding:45px}.login-form-wrap{width:min(100%,400px)}.login-form-wrap h2{font-size:36px;letter-spacing:-.05em;margin:8px 0}.login-form-wrap>p:nth-child(3){color:var(--muted);margin-bottom:36px}.login-form-wrap label{display:block;font-size:13px;font-weight:700;margin:18px 0}.login-form-wrap label small{float:right;color:#9daea4;font-weight:400}.login-form-wrap input{display:block;width:100%;height:50px;background:white;border:1px solid var(--line);border-radius:12px;padding:0 14px;margin-top:8px;outline:none}.login-form-wrap input:focus,.filter-form input:focus,.filter-form select:focus{border-color:#8fb5a4;box-shadow:0 0 0 3px #8fb5a42b}.login-form-wrap .primary-button{width:100%;display:flex;justify-content:space-between;margin-top:12px}.guide-link{display:inline-block;margin-top:28px;font-size:13px;font-weight:700;border-bottom:1px solid var(--gold)}
.duck-app{min-height:100vh}.side-nav{position:fixed;left:0;top:0;bottom:0;width:244px;background:var(--deep);color:#c9dbd0;padding:25px 16px;display:flex;flex-direction:column;z-index:9}.side-brand{display:flex;align-items:center;gap:10px;font-size:24px;font-weight:700;color:white;letter-spacing:-.06em;padding:5px 12px 38px}.side-brand img{width:39px;height:39px;border-radius:12px;object-fit:cover}.side-brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.08em;color:#9bb8a8}.nav-caption{font-size:11px;letter-spacing:.15em;color:#75978a;padding:0 17px;margin:14px 0 10px}.side-nav nav a{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:4px;border-radius:11px;font-size:14px}.side-nav nav a b{font-size:18px;font-weight:400;width:20px}.side-nav nav a:hover,.side-nav nav a.active{background:#ffffff16;color:white}.side-nav nav a.active{box-shadow:inset 3px 0 var(--gold)}.side-foot{margin-top:auto;padding:15px 14px;border-top:1px solid #ffffff20;font-size:12px;display:flex;gap:9px;align-items:center}.online-dot{width:7px;height:7px;background:#b7d791;border-radius:50%}.app-main{margin-left:244px;min-width:0}.top-bar{height:73px;background:#fffefa;border-bottom:1px solid var(--line);padding:0 34px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:13px;color:#98a99f}.breadcrumb span{margin:0 9px}.breadcrumb strong{color:var(--ink)}.account-chip{display:flex;align-items:center;gap:12px;font-size:13px;font-weight:700}.account-chip small{font-size:11px;color:var(--muted);font-weight:400}.account-chip a{background:var(--mint);border-radius:9px;padding:7px}.menu-button{display:none}.app-content{max-width:1500px;margin:auto;padding:34px}.welcome-panel{min-height:238px;background:var(--deep);color:white;border-radius:22px;padding:34px 40px;display:flex;justify-content:space-between;overflow:hidden;position:relative}.welcome-panel:before{content:'';position:absolute;right:80px;top:-110px;width:360px;height:360px;border:1px solid #ffffff30;border-radius:50%}.welcome-panel .eyebrow{color:var(--gold)}.welcome-panel h1{font-size:clamp(28px,3.3vw,42px);line-height:1.28;letter-spacing:-.04em;margin:12px 0}.welcome-panel p:last-child{font-size:13px;color:#c1d5ca}.welcome-panel img{height:175px;width:175px;object-fit:cover;border-radius:50%;align-self:center;z-index:1;border:5px solid #ffffff35}.section-heading{display:flex;align-items:end;justify-content:space-between;margin:30px 0 16px}.section-heading h2{margin:2px 0;font-size:22px}.section-heading>span{font-size:12px;color:var(--muted)}.metric-grid,.shortcut-grid,.mini-metrics{display:grid;gap:15px}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-grid article,.mini-metrics article{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:22px}.metric-grid span,.mini-metrics span{display:block;font-size:12px;color:var(--muted)}.metric-grid strong,.mini-metrics strong{display:block;font-size:25px;margin:11px 0;letter-spacing:-.04em}.metric-grid small{color:#9aaa9d}.shortcut-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.shortcut-grid a{background:var(--mint);border-radius:16px;padding:22px;position:relative;min-height:130px}.shortcut-grid a span{display:block;color:#739484;font-size:12px}.shortcut-grid a strong{display:block;margin-top:16px;font-size:18px}.shortcut-grid a b{position:absolute;right:22px;bottom:20px}.page-lead h1{font-size:35px;letter-spacing:-.05em;margin:7px 0}.page-lead>p:last-child{font-size:13px;color:var(--muted)}.list-tools{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:19px;margin:25px 0 16px;display:flex;gap:15px;align-items:end;justify-content:space-between;flex-wrap:wrap}.filter-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.filter-form label{font-size:11px;color:var(--muted);font-weight:700}.filter-form input,.filter-form select{display:block;background:white;border:1px solid var(--line);border-radius:9px;padding:10px;margin-top:6px;color:var(--ink);height:42px;max-width:180px}.mini-metrics{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:16px}.mini-metrics article{padding:16px}.mini-metrics strong{font-size:20px;margin:7px 0 0}.record-panel{background:var(--paper);border:1px solid var(--line);border-radius:17px;overflow:hidden}.record-head{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid var(--line)}.record-head h2{font-size:16px;margin:0}.record-head span{font-size:12px;color:var(--muted)}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}th{text-align:left;background:#f2f7f1;color:#678273;font-weight:700;padding:13px 16px}td{border-top:1px solid #edf1eb;padding:15px 16px;color:#42615a}td strong{color:var(--ink)}.status-pill{display:inline-block;background:#edf1ec;border-radius:20px;padding:5px 9px}.status-pill.done{color:#287e5a;background:#e6f5e9}.status-pill.fail{color:var(--danger);background:#fcf0ec}.detail-button{border:0;color:#357967;background:transparent;font-weight:700}.empty-state{text-align:center;padding:55px 20px;color:var(--muted)}.empty-state span{display:block;font-size:33px}.empty-state strong{display:block;color:var(--ink);margin:10px}.empty-state p{font-size:12px}.pager{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding:14px 20px;color:var(--muted);font-size:12px}.pager button{background:white;border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-left:7px;color:var(--ink)}.pager button:disabled{opacity:.45;cursor:default}dialog{border:0;border-radius:18px;box-shadow:0 22px 90px #0d2f2e30;color:var(--ink);max-width:min(90vw,480px);padding:30px}dialog::backdrop{background:#102e2db0}.detail-dialog{width:440px}.detail-dialog>button{float:right;border:0;background:var(--mint);border-radius:8px;padding:5px 10px;font-size:20px}.detail-dialog dl{display:grid;grid-template-columns:120px 1fr;gap:11px;font-size:13px;word-break:break-all}.detail-dialog dt{color:var(--muted)}.detail-dialog dd{margin:0}.bind-dialog{text-align:center}.bind-dialog img{max-width:180px;display:block;margin:18px auto}.bind-dialog input{padding:12px;border:1px solid var(--line);border-radius:9px;text-align:center;display:block;margin:0 auto 12px}.bind-dialog .primary-button{width:100%}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.mini-metrics{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-story{min-height:360px;padding:25px}.login-copy{margin-top:35px}.login-art{display:none}.login-panel{padding:35px 25px}.side-nav{transform:translateX(-100%);transition:transform .25s}.side-nav.open{transform:none}.app-main{margin-left:0}.menu-button{display:block;border:0;background:none;color:var(--ink);font-size:22px}.top-bar{padding:0 18px;height:62px}.account-chip small{display:none}.app-content{padding:18px}.welcome-panel{padding:25px}.welcome-panel img{width:80px;height:80px}.shortcut-grid{grid-template-columns:1fr}.mini-metrics{grid-template-columns:repeat(2,1fr)}.filter-form input,.filter-form select{max-width:100%}.filter-form label{width:calc(50% - 6px)}.filter-form button{width:100%}.list-tools>.ghost-button{width:100%}}
