@font-face{font-family:Huninn;src:url('/static/fonts/jf-openhuninn-2.1.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--ink:#493b50;--muted:#7b6e80;--green:#84609b;--paper:#fffaf7;--line:#eee3e8;--gold:#aa7787;--danger:#b44363}
body{font-family:Huninn,'Microsoft JhengHei','PingFang TC',sans-serif;background:var(--paper);font-size:15px;line-height:1.55}h1,h2,h3{letter-spacing:.15px}button,input,select,textarea{font-family:inherit}.sidebar{background:#fff4ef;border-right:1px solid #f0e2df}.brand{color:#644d6b}.brand small{color:#957a8c;letter-spacing:1px}.brandmark,.brandmark.small{background:#f0dce9;color:#8b5c88;border-radius:15px;box-shadow:inset 0 -3px 0 #dfbfd526}.nav-label,.sidebar-bottom,.sidebar-bottom button{color:#8d7485}.dot{background:#b493c3}nav{gap:8px}nav button{color:#776477;border-radius:16px;font-size:14px}nav button span{border-radius:9px;background:#f7e4df;color:#9c6b7e;width:27px;height:27px;display:grid;place-items:center;font-size:20px}nav button:nth-child(2) span{background:#f3e3f5;color:#9261a0}nav button:nth-child(3) span{background:#f9e9d2;color:#997146}nav button:nth-child(4) span{background:#e6f0e9;color:#54765f}nav button:nth-child(5) span{background:#eae5f7;color:#7c68a0}nav button:nth-child(6) span{background:#f9e4ea;color:#a15e78}nav button.active{background:#ecdef1;color:#684c7b;box-shadow:inset 3px 0 #ae83ba}nav b{background:#e6cfe5;color:#704778}.topbar{background:#fffdfb;border-color:var(--line)}.breadcrumb strong{color:#68506e}.breadcrumb span{color:#c2aaba}.primary{background:#8963a1;color:white;border-radius:14px;box-shadow:0 3px 0 #66477918}.primary:hover{background:#79528f}.secondary{background:#f0e6f4;color:#775289;border-radius:12px}.secondary:hover{background:#e8d7ed}.quiet,a{color:#80548f}.quiet:hover{background:#f7edf8;border-radius:10px}.page-heading h1{font-size:29px;font-weight:600}.page-heading .eyebrow{font-size:10px;color:#9a7c91;letter-spacing:1px}.page-heading .muted{color:#8a7685}.date-pill{background:#fff;border-color:#e8dbe6;color:#806582}.stats{gap:16px}.stat{border:1px solid #eaddf0;background:#f4edf9;border-radius:20px;padding:20px 22px;box-shadow:0 4px 0 #e8dff52e}.stat:nth-child(2){background:#fff0e7;border-color:#f2dfd1;box-shadow:0 4px 0 #f6e4d62e}.stat:nth-child(3){background:#eef5ee;border-color:#dfeadd;box-shadow:0 4px 0 #e2ecdd2e}.stat label{font-size:14px;font-weight:600;color:#746079;margin-bottom:8px}.stat .number{color:#715085;font-size:42px;font-weight:700;line-height:1.25;letter-spacing:-1px;font-variant-numeric:tabular-nums}.stat:nth-child(2) .number{color:#a56846}.stat:nth-child(3) .number{color:#4f785b}.stat .number small{font-size:15px;color:inherit}.stat p{font-size:12px;color:#796c78;line-height:1.6}.panel,.document-card,.item-card{border-color:var(--line);border-radius:17px;background:#fff;box-shadow:0 4px 15px #80547c04}.panel-heading h3{color:#694f72;font-size:17px}.panel-heading{margin-bottom:12px}.row{border-color:#f0e9ee}.row-main strong{font-size:14px;font-weight:600}.row-main small{font-size:12px;color:#847287}.file-icon{background:#f2e8f6;color:#926aa3;border-radius:12px}.badge{background:#f0e8f6;color:#75568a;border-radius:8px;font-size:11px}.badge.pending{background:#fff0d9;color:#92642c}.badge.overdue{background:#fce5ee;color:#a23f60}.money{color:#765583;font-size:15px}.expense-status{flex-shrink:0;padding:5px 9px;border-radius:9px;font-size:11px;background:#edf3e9;color:#5d7750;white-space:nowrap}.expense-status.unpaid{background:#fff0de;color:#95652e}.note{background:#fff8ed;border-color:#f0e5d8;color:#8c755f}.empty{color:#8f7c8f}.empty .empty-icon{color:#c1a8c9}.form-hint{color:#88758a}.check-button{border-color:#d6c2dd;color:#865a99;border-radius:9px}.check-button.checked{background:#ecdff2;border-color:#c6a3d2}.done strong{color:#947d99}.toolbar input,.toolbar select,input,select,textarea{background:#fffefd;border-color:#e6dce6;border-radius:12px;color:var(--ink)}input:focus,select:focus,textarea:focus{border-color:#bb94ca;outline-color:#f0e2f5}label{color:#78617e}button:focus-visible,a:focus-visible{outline-color:#bf98cd}.login-shell{background:radial-gradient(ellipse at 0 0,#f4e7f7,transparent 55%),#fff8f0}.login-card{border-color:#eadde8;border-radius:25px;box-shadow:0 16px 60px #976b9b0c}.tabs{background:#f5edf6}.tabs button.selected{color:#80558c}.dropzone{background:#fff9fc;border-color:#dcc2de}.preview-box{background:#f4eff6}dialog{border-color:var(--line);border-radius:22px;box-shadow:0 25px 90px #51385825}dialog::backdrop{background:#5b426442}.receipt-item{border-color:#e8dbe9}.receipt-item legend{color:#80568e}.history{color:#8b758c;border-color:var(--line)}progress{accent-color:#b08ac0}.bar{background:#f2e8f5}.bar-fill{background:#b290bf}#toast{background:#80598f;border-radius:16px}.shopping-summary strong,.shopping-quantity{color:#9b6c45}.shopping-panel{border-color:#eddfdf}.shopping-row{border-color:#f0e6ea}.shopping-row .row-main strong{font-size:14px}.inventory-table{border-color:#e9ddeb;border-radius:17px}.inventory-table-head{background:#f5eef8;color:#907398;font-size:12px}.inventory-row.item-card{border-color:#f1e9f3;background:#fff;border-radius:0}.inventory-row:hover{background:#fff9fd}.inventory-name strong{font-size:14px}.inventory-name small,.inventory-stock small,.inventory-dates small{color:#947c99}.inventory-stock{color:#825798;font-size:23px}.inventory-status .badge{border-radius:7px}.inventory-actions .quiet{color:#8c6398}.inventory-dates{color:#6f557a}.compact-stats{gap:10px}.compact-stats .stat{border-radius:15px;padding:11px 15px}.compact-stats .stat .number{font-size:29px}.compact-stats .stat label{font-size:12px}.document-tabs{display:flex;gap:9px;margin-bottom:18px;flex-wrap:wrap}.document-tabs button{border:1px solid #ebdfed;background:#fff;color:#8a708f;border-radius:14px;padding:10px 15px;display:flex;align-items:center;gap:10px;min-height:44px}.document-tabs button.selected{background:#f0e2f5;border-color:#d5bade;color:#784c89;font-weight:600}.document-tabs b{font-size:12px;padding:1px 7px;border-radius:7px;background:#fff9}.service-event{border-color:var(--line)}.shopping-row .secondary{background:#f9ecd9;color:#916b38}
@media(max-width:1000px){.page-heading h1{font-size:26px}.stat .number{font-size:35px}.stat{padding:17px}.compact-stats .stat{padding:10px}.compact-stats .stat .number{font-size:27px}}
@media(max-width:650px){.sidebar{background:#fffcf9;border-top:1px solid #eadde8}.page-heading h1{font-size:24px}#nav button{color:#8b758e;font-size:10px}#nav button.active{background:#f0e2f4;color:#765081;box-shadow:inset 0 3px #bf9acb}#nav button span{font-size:18px;width:24px;height:24px}nav b{background:#e7cde6;color:#754c80}.stats{gap:7px}.stat{border-radius:15px;padding:13px 9px}.stat label{font-size:11px}.stat .number{font-size:30px}.stat .number small{font-size:11px}.stat p{font-size:10px}.compact-stats .stat{padding:9px}.compact-stats .stat .number{font-size:25px}.panel{border-radius:16px}.document-tabs{gap:6px}.document-tabs button{font-size:12px;padding:8px 11px;gap:6px}.inventory-name strong{font-size:13px}.inventory-stock{font-size:21px}.row-main strong{font-size:13px}.row-main small{font-size:11px}.expense-status{font-size:10px;padding:5px 7px}.money{font-size:13px}.toolbar input,.toolbar select{font-size:12px}}
