:root{
  --blue-950:#062b57;--blue-900:#073b77;--blue-800:#0a4b94;--blue-700:#0a58ca;--blue-600:#1473e6;
  --blue-100:#dbeafe;--blue-50:#eff7ff;--gold:#facc15;--ink:#10233b;--muted:#64748b;
  --line:#dce7f3;--surface:#fff;--canvas:#f3f7fb;--success:#0f8a5f;--danger:#c52b43;--warning:#a16207;
  --radius:22px;--radius-sm:14px;--shadow:0 16px 45px rgba(15,52,96,.10);--shadow-sm:0 8px 24px rgba(15,52,96,.08);
}
*{box-sizing:border-box}
html{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;background:var(--canvas);color:var(--ink);-webkit-text-size-adjust:100%}
body{margin:0;background:linear-gradient(180deg,#edf5ff 0,#f7f9fc 360px,var(--canvas) 100%);min-height:100vh}
button,input,select,textarea{font:inherit}
a{color:var(--blue-700)}
.app-shell{min-height:100vh}
.topbar{position:sticky;top:0;z-index:70;height:68px;padding:10px max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,var(--blue-700),var(--blue-950));color:#fff;box-shadow:0 8px 26px rgba(6,43,87,.20)}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:900;letter-spacing:-.02em}
.brand img{height:38px;width:auto;max-width:115px;object-fit:contain}
.icon-button,.avatar{width:42px;height:42px;border:0;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.13);color:#fff;text-decoration:none;font-weight:900;font-size:1.2rem;cursor:pointer}
.side-nav{position:fixed;z-index:100;inset:0 auto 0 0;width:294px;padding:20px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;background:rgba(255,255,255,.98);box-shadow:24px 0 60px rgba(6,43,87,.18);transform:translateX(-105%);transition:transform .25s ease;overflow-y:auto}
.drawer-open .side-nav{transform:translateX(0)}
.drawer-backdrop{position:fixed;z-index:90;inset:0;background:rgba(6,26,51,.45);opacity:0;visibility:hidden;transition:.25s}
.drawer-open .drawer-backdrop{opacity:1;visibility:visible}
.drawer-close-button{display:flex;margin:0 0 14px auto;color:var(--ink);background:#eef4fa}
.client-chip{padding:14px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fff,var(--blue-50));margin-bottom:14px;overflow:hidden}
.client-chip strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eyebrow{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800;margin-bottom:4px}
.side-nav nav{display:flex;flex-direction:column;gap:4px}
.side-nav nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:14px;text-decoration:none;color:#29415e;font-weight:760}
.side-nav nav a span{width:24px;text-align:center;font-size:1.15rem}
.side-nav nav a:hover{background:#f0f6fc}
.side-nav nav a.active{color:#fff;background:linear-gradient(120deg,var(--blue-700),var(--blue-900));box-shadow:0 8px 18px rgba(10,88,202,.2)}
.side-footer{margin-top:auto;padding-top:18px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line)}
.side-footer a{text-decoration:none;font-weight:750}.danger-link{color:var(--danger)}
.app-main{width:min(1180px,100%);margin:0 auto;padding:24px 18px 110px}
.bottom-nav{position:fixed;z-index:80;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));height:66px;padding:6px;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);border:1px solid rgba(205,220,235,.9);border-radius:22px;box-shadow:0 18px 45px rgba(6,43,87,.20);backdrop-filter:blur(18px)}
.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:16px;color:#718198;text-decoration:none;font-size:.68rem;font-weight:800}
.bottom-nav a span{font-size:1.15rem;line-height:1}
.bottom-nav a.active{background:var(--blue-50);color:var(--blue-700)}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:2px 0 20px}
.page-head h1{font-size:clamp(1.65rem,4vw,2.35rem);line-height:1.05;letter-spacing:-.045em;margin:0}
.page-head p{margin:7px 0 0;color:var(--muted);font-weight:600}
.actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.card{background:rgba(255,255,255,.97);border:1px solid rgba(214,228,242,.92);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}
.card+.card{margin-top:16px}
.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.card-title h2,.card-title h3{margin:0;font-size:1.08rem;letter-spacing:-.02em}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.metric{position:relative;min-height:136px;overflow:hidden;background:linear-gradient(145deg,#fff,#f6faff)}
.metric::after{content:"";position:absolute;right:-24px;bottom:-34px;width:110px;height:110px;border-radius:50%;background:var(--blue-100);opacity:.6}
.metric .label{color:var(--muted);font-weight:750;font-size:.84rem}.metric .value{font-size:1.85rem;font-weight:900;letter-spacing:-.045em;margin:12px 0 4px}.metric .sub{font-size:.78rem;color:var(--muted);font-weight:650}
.hero-card{padding:24px;background:linear-gradient(135deg,var(--blue-700),var(--blue-950));color:#fff;border:0;box-shadow:0 22px 50px rgba(6,43,87,.25)}
.hero-card .eyebrow{color:#cfe5ff}.hero-card h2{font-size:clamp(1.35rem,3.5vw,2rem);margin:3px 0 8px;letter-spacing:-.035em}.hero-card p{margin:0;color:#e6f1ff;max-width:720px}.hero-card .btn{margin-top:18px}
.btn{min-height:44px;padding:10px 16px;border:1px solid transparent;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-weight:850;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(120deg,var(--blue-700),var(--blue-900));color:#fff;box-shadow:0 8px 20px rgba(10,88,202,.2)}.btn-light{background:#eef4fa;color:var(--ink);border-color:var(--line)}.btn-white{background:#fff;color:var(--blue-800)}.btn-danger{background:#fff0f2;color:var(--danger);border-color:#ffd4db}.btn-block{width:100%}.btn-small{min-height:36px;padding:7px 11px;border-radius:11px;font-size:.82rem}
.banner{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:17px 18px;border-radius:18px;margin-bottom:16px;border:1px solid}.banner strong{display:block;margin-bottom:3px}.banner p{margin:0;font-size:.9rem}.banner.warning{background:#fff9e8;border-color:#f5d77c;color:#694609}.banner.success{background:#ebfaf4;border-color:#a5e4cd;color:#0b6244}.banner.info{background:#eef7ff;border-color:#bddcff;color:#174f88}.banner.danger{background:#fff1f3;border-color:#ffc3cc;color:#8c1d31}
.toast{position:relative;padding:14px 18px;border-radius:16px;margin-bottom:16px;font-weight:750;border:1px solid}.toast.success{background:#eaf9f2;color:#0d704e;border-color:#a5e4cd}.toast.danger{background:#fff0f2;color:#9a1e35;border-color:#ffc3cc}.toast.info{background:#eef7ff;color:#174f88;border-color:#bddcff}.toast.warning{background:#fff9e8;color:#694609;border-color:#f5d77c}
.status{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:.74rem;font-weight:900;text-transform:capitalize;white-space:nowrap}.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status.success{background:#e8f8f1;color:#0b7b55}.status.danger{background:#fff0f2;color:#be2941}.status.warning{background:#fff6dc;color:#8b5b00}.status.info{background:#edf5ff;color:#1763ae}
.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid #eaf0f6}.list-item:first-child{padding-top:0}.list-item:last-child{border-bottom:0;padding-bottom:0}.list-main{min-width:0}.list-main strong{display:block;overflow:hidden;text-overflow:ellipsis}.list-main small{display:block;color:var(--muted);margin-top:4px}.list-side{text-align:right;flex:0 0 auto}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.field.full{grid-column:1/-1}.field label{display:block;margin-bottom:7px;font-size:.82rem;font-weight:850;color:#344b66}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 13px;border:1px solid #cddceb;border-radius:14px;background:#fff;color:var(--ink);outline:0;transition:border .15s,box-shadow .15s}.field textarea{min-height:112px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-600);box-shadow:0 0 0 4px rgba(20,115,230,.12)}.field .hint{font-size:.76rem;color:var(--muted);margin-top:6px}.required::after{content:" *";color:var(--danger)}
.section-label{grid-column:1/-1;margin:10px 0 -3px;padding-bottom:9px;border-bottom:1px solid var(--line);font-size:.95rem;font-weight:900;color:var(--blue-900)}
.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.data-item{padding:13px 14px;background:#f7faff;border:1px solid #e4edf6;border-radius:14px}.data-item .label{font-size:.73rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.06em}.data-item .value{margin-top:5px;font-weight:750;overflow-wrap:anywhere}.data-item.full{grid-column:1/-1}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:17px}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{padding:13px 14px;border-bottom:1px solid #e8eff6;text-align:left;vertical-align:middle}.table th{font-size:.73rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:#f7faff}.table tr:last-child td{border-bottom:0}.table .right{text-align:right}
.progress-track{height:11px;border-radius:999px;background:#e4edf6;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue-600),#38a3ff)}
.timeline{position:relative;padding-left:24px}.timeline::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:#cfe0f1}.timeline-item{position:relative;padding:0 0 22px}.timeline-item:last-child{padding-bottom:0}.timeline-item::before{content:"";position:absolute;left:-23px;top:5px;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:var(--blue-600);box-shadow:0 0 0 2px var(--blue-200,#bddcff)}.timeline-item h3{font-size:1rem;margin:0 0 5px}.timeline-item p{color:var(--muted);margin:0;white-space:pre-line}.timeline-meta{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:8px 0}
.empty{text-align:center;padding:42px 20px}.empty .icon{font-size:2rem}.empty h3{margin:10px 0 5px}.empty p{margin:0 auto 18px;color:var(--muted);max-width:450px}
.contract-paper{background:#fff;color:#172033;border:1px solid #dfe7ef;border-radius:18px;padding:clamp(20px,5vw,54px);box-shadow:var(--shadow);line-height:1.62}.contract-paper h1,.contract-paper h2,.contract-paper h3{color:#0b3566;line-height:1.22}.contract-paper table{width:100%;border-collapse:collapse}.contract-paper td,.contract-paper th{border:1px solid #d8e1ea;padding:8px}
.signature-pad{width:100%;height:190px;border:2px dashed #b7cbe0;border-radius:16px;background:#fbfdff;touch-action:none}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,520px);background:#fff}.auth-art{position:relative;padding:64px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 70% 20%,rgba(56,163,255,.42),transparent 32%),linear-gradient(145deg,#0a58ca,#062b57);color:#fff;overflow:hidden}.auth-art::after{content:"";position:absolute;width:360px;height:360px;border:70px solid rgba(255,255,255,.08);border-radius:50%;right:-120px;bottom:-120px}.auth-art img{width:170px;position:relative;z-index:1}.auth-art h1{position:relative;z-index:1;font-size:clamp(2rem,4vw,4rem);line-height:1;letter-spacing:-.06em;max-width:700px;margin:0 0 18px}.auth-art p{position:relative;z-index:1;color:#dceeff;max-width:590px;font-size:1.05rem}.auth-panel{padding:36px;display:grid;place-items:center}.auth-card{width:min(420px,100%)}.auth-card h2{font-size:2rem;letter-spacing:-.04em;margin:0 0 8px}.auth-card>p{color:var(--muted);margin:0 0 26px}.auth-logo-mobile{display:none!important}.auth-links{text-align:center;margin-top:18px;font-size:.9rem}.auth-links a{font-weight:750;text-decoration:none}.auth-footer{margin-top:28px;color:var(--muted);font-size:.78rem;text-align:center}
.receipt{max-width:820px;margin:0 auto;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow)}.receipt-head{padding:30px;background:linear-gradient(120deg,var(--blue-700),var(--blue-950));color:#fff;display:flex;justify-content:space-between;gap:20px}.receipt-head img{height:55px}.receipt-body{padding:30px}.receipt-total{padding:22px;border-radius:16px;background:var(--blue-50);text-align:center;margin:24px 0}.receipt-total strong{display:block;font-size:2rem;letter-spacing:-.04em;color:var(--blue-900)}
@media(min-width:1000px){.menu-button,.drawer-backdrop,.drawer-close-button{display:none}.side-nav{transform:none;width:270px}.app-main{width:auto;margin-left:270px;padding:34px 34px 70px;max-width:1460px}.topbar{margin-left:270px;padding-left:34px}.bottom-nav{display:none}.brand span{font-size:1.05rem}}
@media(max-width:850px){.grid.four,.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}.form-grid,.data-grid{grid-template-columns:1fr}.field.full,.data-item.full{grid-column:auto}.page-head{align-items:flex-start;flex-direction:column}.page-head .actions{width:100%}.page-head .actions .btn{flex:1}.auth-page{display:flex;flex-direction:column;min-height:100svh}.auth-art{display:flex;flex:0 0 auto;min-height:250px;padding:30px 24px;justify-content:space-between}.auth-art img{width:76px}.auth-art h1{font-size:clamp(2rem,8vw,3rem);max-width:590px;margin:38px 0 10px}.auth-art p{font-size:.95rem;margin:0}.auth-art::after{width:250px;height:250px;border-width:48px;right:-90px;bottom:-130px}.auth-panel{flex:1;padding:34px 22px 48px;min-height:0}.auth-card{width:min(480px,100%)}}
@media(max-width:560px){.app-main{padding:18px 14px 100px}.grid.four,.grid.three{grid-template-columns:1fr}.card{padding:16px;border-radius:18px}.hero-card{padding:20px}.list-item{align-items:flex-start}.list-side{max-width:42%}.banner{flex-direction:column}.table-wrap{border:0;overflow:visible}.table,.table tbody{display:block}.table thead{display:none}.table tr{display:block;border:1px solid var(--line);border-radius:16px;margin-bottom:10px;padding:7px;background:#fff}.table td{display:flex;justify-content:space-between;gap:16px;padding:8px;border:0;text-align:right}.table td::before{content:attr(data-label);font-size:.72rem;color:var(--muted);font-weight:850;text-transform:uppercase;text-align:left}.receipt-head,.receipt-body{padding:20px}.receipt-head{flex-direction:column}.auth-art{min-height:210px;padding:24px 20px}.auth-art img{width:58px}.auth-art h1{font-size:1.85rem;line-height:1.02;margin:28px 0 0;max-width:350px}.auth-art p{display:none}.auth-panel{padding:28px 20px 42px}.auth-card h2{font-size:1.8rem}}
@page{size:A4 portrait;margin:10mm}
@media print{html,body{background:#fff!important}body{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.topbar,.side-nav,.bottom-nav,.no-print,.drawer-backdrop{display:none!important}.app-main{margin:0!important;padding:0!important;width:100%!important;max-width:none!important}.contract-paper{box-shadow:none;border:0;border-radius:0}.receipt{max-width:190mm;margin:0 auto;border:1px solid #dce7f3;border-radius:16px;overflow:hidden;box-shadow:0 8px 24px rgba(15,52,96,.10);break-inside:avoid;page-break-inside:avoid}.receipt,.receipt *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.receipt-head{padding:25px 28px!important;display:flex!important;flex-direction:row!important;justify-content:space-between!important;background:linear-gradient(120deg,#0a58ca,#062b57)!important;color:#fff!important}.receipt-head img{height:48px}.receipt-body{padding:26px!important}.receipt .banner{display:flex!important;flex-direction:row!important;background:#ebfaf4!important;border-color:#a5e4cd!important;color:#0b6244!important}.receipt-total{padding:20px!important;margin:22px 0!important;background:#eff7ff!important}.receipt .data-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.receipt .data-item{background:#f7faff!important;border-color:#e4edf6!important;break-inside:avoid;page-break-inside:avoid}.receipt .data-item.full{grid-column:1/-1!important}}
