:root{--bg-a: #f6fbff;--bg-b: #edf4ea;--ink: #12212f;--muted: #587082;--card: #ffffff;--brand: #0d8a73;--brand-2: #f4a259;--danger: #b42318;--line: #d6e3ee;--shadow: 0 10px 30px rgba(25, 52, 70, .12)}*{box-sizing:border-box}body{margin:0;font-family:Sora,sans-serif;color:var(--ink);background:radial-gradient(circle at 5% 10%,#d5f5ec 0,transparent 30%),radial-gradient(circle at 90% 10%,#ffe8d2 0,transparent 25%),linear-gradient(120deg,var(--bg-a),var(--bg-b));min-height:100vh}h1,h2,h3,.brand{font-family:Space Grotesk,sans-serif}input,select,textarea,button{font-family:inherit}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff}label{font-size:13px;color:var(--muted);display:grid;gap:6px}.btn{border:none;border-radius:12px;padding:10px 14px;background:linear-gradient(120deg,var(--brand),#14a98b);color:#fff;font-weight:700;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn-secondary{background:#213547}.grid{display:grid;gap:12px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(520px,100%);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;padding:28px;animation:rise .5s ease}.login-brand-block{display:grid;justify-items:center;gap:10px;margin-bottom:8px}.login-logo{width:min(340px,100%);max-height:130px;object-fit:contain;border-radius:14px;border:1px solid #d7e4ef;background:#fff;padding:8px;box-shadow:0 10px 22px #0c2d441a}.login-card h1{text-align:center}.badge{display:inline-block;font-size:12px;font-weight:700;padding:6px 10px;border-radius:999px;background:#dbf6ef;color:#0b6f5d}.hint{font-size:12px;color:var(--muted)}.error-text{color:var(--danger);font-size:13px}.shell-bg{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:#0f202d;color:#d6f2eb;padding:20px;display:grid;align-content:start;gap:16px}.sidebar-brand-block{display:grid;gap:8px}.sidebar-logo{width:100%;max-width:220px;justify-self:center;border-radius:10px;border:1px solid rgba(255,255,255,.25);background:#fff;padding:6px}.brand-sub{margin:-10px 0 0;color:#8fb0c2;font-size:12px}.user-card{background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px;display:grid;gap:4px;font-size:12px}.user-name{color:#fff;font-weight:700}.content{padding:24px;display:flex;flex-direction:column;min-height:100vh}.content-body{flex:1}.app-footer{margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(120deg,#fff,#f4faf6);color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:10px}.page-header{display:grid;gap:14px;margin-bottom:18px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px}.stat-label{font-size:12px;color:var(--muted)}.stat-value{font-size:24px;font-weight:700}.panel{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.layout-2{display:grid;grid-template-columns:.9fr 1.3fr;gap:14px}.table{width:100%;border-collapse:collapse}.table th,.table td{border-bottom:1px solid var(--line);padding:8px;font-size:13px;text-align:left}.row-click{cursor:pointer}.row-click:hover{background:#f6fbff}.row-selected{background:#e7f5ff}.row-selected td{border-bottom-color:#b6dcf7}.row-name{display:inline-flex;align-items:center;gap:8px}.row-marker{width:10px;height:10px;border-radius:50%;background:#0b6f5d;box-shadow:0 0 0 2px #c9f2e7}.section-title{margin:0 0 8px;font-size:15px}.heading-with-icon{display:inline-flex;align-items:center;gap:8px}.heading-icon{width:16px;height:16px;fill:currentColor;color:#0b6f5d}.field-label-inline{display:inline-flex;align-items:center;gap:6px}.field-icon{width:14px;height:14px;fill:currentColor;color:#1d4f7a}.cp-suggest-wrap{position:relative}.cp-suggest-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);list-style:none;margin:0;padding:6px;z-index:20;max-height:180px;overflow:auto}.cp-suggest-left{left:-8px;right:8px}.cp-suggest-item{padding:8px 10px;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;gap:8px}.cp-suggest-item:hover{background:#f1f8ff}.cp-suggest-item small{color:var(--muted)}.plain-fieldset{border:0;margin:0;padding:0;min-width:0}.doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.doc-item{border:1px solid var(--line);border-radius:12px;padding:10px}.doc-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.upload-btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border-radius:10px;border:1px solid #b7ebda;background:linear-gradient(120deg,#effcf6,#ddf8ee);color:#0b6f5d;font-weight:600;cursor:pointer}.upload-btn:hover{background:linear-gradient(120deg,#ddf8ee,#cdf2e4)}.file-input-hidden{display:none}.view-link{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;background:#f7fbff;color:#1d4f7a}.view-link:hover{background:#eaf4ff}.view-icon{width:18px;height:18px;fill:currentColor}.doc-item small{color:#0b6f5d}.alert{border-radius:12px;padding:10px 12px;font-size:13px;border:1px solid}.alert-success{background:#e9f9f3;color:#0b6f5d;border-color:#b7ebda}.alert-error{background:#fff1f2;color:#b42318;border-color:#fecdd3}.toast-wrap{position:fixed;top:16px;right:16px;z-index:1200;display:grid;gap:10px;width:min(360px,calc(100vw - 24px))}.toast{border-radius:12px;padding:11px 12px;box-shadow:var(--shadow);border:1px solid;background:#fff;font-size:13px;animation:rise .25s ease}.toast-success{color:#0b6f5d;border-color:#b7ebda;background:#e9f9f3}.toast-error{color:#b42318;border-color:#fecdd3;background:#fff1f2}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#09192473;display:grid;place-items:center;z-index:1300;padding:16px}.confirm-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.confirm-card h4{margin:0 0 8px}.confirm-card p{margin:0 0 14px;color:var(--muted);font-size:13px}.confirm-actions{display:flex;gap:10px;flex-wrap:wrap}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1000px){.shell-bg{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:2}.layout-2{grid-template-columns:1fr}.app-footer{flex-direction:column}}
