:root{--primary:#17685b;--secondary:#12312c;--accent:#e7b55c;--font:Inter,ui-sans-serif,system-ui,sans-serif;--bg:#f4f6f3;--panel:#fff;--ink:#1e302b;--muted:#7b8881;--border:#e3e9e3;--side:246px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.55}a{color:var(--primary);text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-1.1px;line-height:1.2;margin-bottom:10px}h2{font-size:20px;letter-spacing:-.5px;margin-bottom:16px}h3{font-size:17px}small{font-size:12px}p{color:var(--muted)}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--side);background:var(--panel);border-right:1px solid var(--border);padding:28px 17px 18px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;gap:11px;align-items:center;padding:0 7px 24px;color:var(--ink);font-weight:750;font-size:16px}.brand small{display:block;font-size:8px;letter-spacing:1.2px;margin-top:5px;color:var(--muted)}.logo{height:43px;width:43px;object-fit:contain;flex-shrink:0;border-radius:13px}.monogram{background:var(--primary);color:white;display:inline-flex;align-items:center;justify-content:center;font-weight:750;font-size:16px}.school-tag{border:1px solid var(--border);border-radius:9px;padding:10px 13px;font-size:12px;margin-bottom:22px;font-weight:650}.school-tag span{float:right;font-weight:400;color:var(--muted)}nav{overflow:auto;scrollbar-width:thin;flex:1}.nav-item{padding:10px 13px;display:flex;gap:12px;border-radius:8px;color:var(--muted);font-size:13px;margin-bottom:3px}.nav-item:hover{background:var(--bg);color:var(--primary)}.nav-item.active{background:#e8f1ed;color:var(--primary);font-weight:650}.nav-group{text-transform:uppercase;letter-spacing:1.8px;font-size:9px;font-weight:750;margin:23px 13px 9px}.sidebar-foot{border-top:1px solid var(--border);padding:16px 10px 0;color:var(--muted);font-size:10px}.app{margin-left:var(--side)}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:var(--panel);border-bottom:1px solid var(--border)}.breadcrumb{font-size:12px;color:var(--muted)}.breadcrumb span{padding:0 12px;color:#bdc6c0}.top-actions{display:flex;align-items:center;gap:14px}.today{font-size:12px;color:var(--muted);margin-right:13px}.icon-button{background:none;border:1px solid var(--border);border-radius:50%;width:34px;height:34px;cursor:pointer;color:var(--ink)}.avatar{width:35px;height:35px;background:#eadfcc;color:#705733;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:700}.user-name{font-size:12px;font-weight:650}.user-name small{display:block;font-size:10px;color:var(--muted);font-weight:400}main{max-width:1590px;margin:auto;padding:32px 38px}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:20px}.page-heading p{margin:0;font-size:13px}.eyebrow{font-size:9px;font-weight:750;letter-spacing:2px;color:var(--muted);margin-bottom:10px}.button{border:1px solid var(--primary);background:var(--primary);color:white;display:inline-flex;gap:15px;align-items:center;justify-content:center;border-radius:8px;font-weight:600;padding:10px 17px;font-size:12px;cursor:pointer;white-space:nowrap}.button:hover{filter:brightness(.95)}.button.ghost{color:var(--ink);background:var(--panel);border-color:var(--border)}.button.light{background:#fff;color:#183e34;border-color:transparent}.button.danger{background:#fff3f0;color:#ac3b34;border-color:#efc9c3}.wide{width:100%;justify-content:space-between;padding:13px 18px}.hero{background:var(--secondary);color:white;padding:30px 35px;border-radius:15px;display:flex;justify-content:space-between;position:relative;overflow:hidden;min-height:227px;margin-bottom:23px}.hero .eyebrow{color:#b5c7bc}.hero h2{font-size:31px;line-height:1.2;letter-spacing:-1px;margin:10px 0 13px}.hero p{color:#b9cbc1;font-size:12px;line-height:1.8}.hero .button{margin-top:7px}.hero-art{display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;min-width:30%}.hero-symbol{font-size:137px;line-height:1;color:var(--accent);font-family:Georgia,serif;transform:rotate(13deg);display:inline-block}.hero-caption{font-size:8px;letter-spacing:3px;color:#bdcfc4;margin-top:22px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:24px}.stats>div{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px;position:relative;min-width:0}.stats small{color:var(--muted);display:block;font-size:11px}.stats strong{font-size:29px;font-weight:650;letter-spacing:-1px;display:block;margin:13px 0 10px;overflow-wrap:anywhere}.stats strong em{font-style:normal;font-size:13px;color:var(--muted)}.stats .muted{font-size:10px}.stat-icon{position:absolute;right:18px;top:17px;color:var(--primary);background:#edf4f0;border-radius:8px;padding:3px 9px;font-size:13px}.dashboard-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:23px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:23px;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-heading h2{margin:0}.panel-heading a{font-size:11px;font-weight:600}.panel-heading .eyebrow{font-size:8px}.notice{display:flex;align-items:center;gap:16px;border-top:1px solid var(--border);padding:19px 0;color:var(--ink)}.notice>span:nth-child(2){flex:1}.notice strong{font-size:12px;display:block}.notice small{font-size:10px;display:block;color:var(--muted);margin-top:5px}.date-tile{border-radius:8px;background:var(--bg);font-size:20px;font-weight:650;min-width:48px;text-align:center;padding:4px}.date-tile small{font-size:8px;text-transform:uppercase}.cream{background:#f6efdf;position:relative;overflow:hidden;min-height:255px}.cream p{color:#81775f;font-size:12px}.cream h2{font-size:23px}.food-art{font-size:90px;color:#dbc8a5;text-align:right;line-height:1;position:absolute;right:20px;bottom:10px;pointer-events:none}.meal{position:relative;z-index:1}.text-link{font-size:12px;font-weight:650}.quick-links{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quick-links a{border:1px solid var(--border);border-radius:9px;padding:17px;color:var(--ink);display:flex;align-items:center;justify-content:space-between;font-size:12px}.quick-links a:hover{background:var(--bg)}.main-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;padding:12px 0}.muted{color:var(--muted)}.hint{font-size:11px;margin-top:15px;line-height:1.8}.alert{padding:13px 17px;border-radius:8px;margin-bottom:20px;font-size:13px}.success{background:#e5f2e9;color:#245b39}.error{background:#ffebe7;color:#9f3125}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 23px;margin:20px 0}label{display:block;color:var(--ink);font-size:12px;font-weight:600;margin-bottom:16px}label small{font-weight:400;color:var(--muted);display:block;margin-top:7px}.form-grid label{margin:0}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:7px;padding:11px 12px;background:var(--panel);color:var(--ink);margin-top:7px;min-width:0}textarea{resize:vertical}input[type=checkbox]{width:auto}input[type=color]{height:40px;width:65px;padding:4px}input[type=file]{font-size:11px}.check{display:flex;align-items:center;gap:10px}.form-footer{border-top:1px solid var(--border);padding-top:20px;display:flex;justify-content:space-between;align-items:center}.form-footer p{font-size:11px;margin:0}.required{color:#b18342}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-bottom:20px}.filters,.inline{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.filters input{width:230px;margin:0}.filters select{width:150px;margin:0}.inline label{margin:0;flex:1}.inline input[type=file]{width:auto;max-width:100%}.table-wrap{overflow:auto;width:100%}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;font-size:9px;letter-spacing:.7px;text-transform:uppercase;background:var(--bg);color:var(--muted);font-weight:600;white-space:nowrap;padding:13px 12px}td{padding:15px 12px;border-bottom:1px solid var(--border);max-width:300px;overflow-wrap:anywhere}td small{display:block;color:var(--muted)}td:first-child{font-weight:600}.row-link{white-space:nowrap;font-size:11px}.badge{display:inline-block;border-radius:5px;font-size:10px;background:#e9f2ec;color:#34664e;padding:4px 8px;white-space:nowrap}.badge.warm{background:#f7ecd7;color:#926c29}.pagination{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding-top:20px}.pagination a{margin-left:20px}.empty{text-align:center;padding:60px 20px}.empty.small{padding:30px 10px}.empty p{font-size:12px}.empty-icon{font-size:38px;color:#9bb4a7;margin-bottom:10px}.detail-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;padding:10px 0}.detail-grid small{display:block;color:var(--muted);font-size:10px;margin-bottom:7px}.detail-grid>div{overflow-wrap:anywhere}.total-bar{margin-top:22px;border-top:1px solid var(--border);padding:18px 0 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.total-bar strong{font-size:24px;white-space:nowrap}.compact{grid-template-columns:repeat(3,1fr);margin-top:20px}.compact>div{background:var(--bg);padding:15px}.compact strong{font-size:23px}.submission{border-bottom:1px solid var(--border);padding:15px 0;margin-bottom:20px}.submission p{white-space:pre-wrap;color:var(--ink)}.colour-row{display:flex;align-items:center;justify-content:space-between}.theme-preview{margin-top:24px;padding:25px;background:var(--secondary);border-radius:10px;color:white}.theme-preview h2{margin-top:17px}.theme-preview .badge{background:var(--accent);color:#17251f}.print-school{text-align:center}.print-school h2{margin-top:15px}.receipt{max-width:800px;margin:auto}.mobile-toggle{display:none}.error-page,.installer{max-width:620px;margin:50px auto;background:var(--panel);padding:35px;border-radius:15px}.login-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-story{background:var(--secondary);color:#fff;padding:42px 60px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.login-brand{display:flex;align-items:center;gap:15px;font-size:13px;font-weight:700;letter-spacing:2px}.login-story>.login-brand .logo{background:#e6ba72;color:#17382f}.login-story .eyebrow{color:#a6bdb0;margin-top:45px}.login-story h1{font-family:Georgia,serif;font-size:clamp(45px,5.3vw,80px);font-weight:400;letter-spacing:-3px;line-height:1.04;margin:24px 0}.login-story p{color:#b6c7bd;font-size:14px;line-height:1.9}.login-story>small{color:#8ea99c;font-size:10px;margin-top:20px}.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:50px 35px;background:#fafbf8}.login-form{width:100%;max-width:365px}.login-form h2{font-size:34px;font-weight:650;letter-spacing:-1.3px}.login-form>p{margin-bottom:28px}.login-form input{padding:13px}.login-form label{margin-bottom:19px}.login-form .hint{font-size:11px;line-height:1.8;margin:22px 0}.login-bottom{font-size:10px;border-top:1px solid var(--border);padding-top:20px;color:var(--muted)}.orbit-art{height:185px;position:relative;width:100%;margin:10px 0}.orbit{border:1px solid #739383;position:absolute;border-radius:50%;width:300px;height:115px;top:30px;left:0;transform:rotate(-17deg)}.orbit.b{transform:rotate(17deg)}.sun{position:absolute;top:5px;left:100px;font-size:105px;color:#e6ba72}.art-label{position:absolute;font-size:8px;letter-spacing:3px;top:170px;left:45px}.dark{--bg:#17231f;--panel:#20312a;--ink:#e4eae5;--muted:#a6b6ac;--border:#354b3e}.dark .nav-item.active{background:#304f41;color:#e4eae5}.dark a{color:#a5d7bf}.dark .cream{background:#3d382b}.dark .cream p{color:#cfc5ae}.dark .stats .stat-icon{background:#324d3d;color:#c2d9cb}.dark .success{background:#274b37;color:#c1e4cb}.dark .theme-preview p{color:#bdc7c0}
@media(min-width:1500px){main{padding:38px 55px}.hero{padding:36px 42px}.hero h2{font-size:37px}}
@media(max-width:1100px){:root{--side:215px}main{padding:25px}.topbar{padding:0 25px}.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.quick-links{grid-template-columns:repeat(2,1fr)}.today{display:none}.hero-symbol{font-size:105px}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:transform .2s}.nav-open .sidebar{transform:translateX(0);box-shadow:0 0 0 100vw #0005}.app{margin-left:0}.mobile-toggle{display:block}.topbar{height:65px;padding:0 18px;gap:15px}.breadcrumb{flex:1}.user-name{display:none}.top-actions{gap:8px}main{padding:22px 16px}h1{font-size:27px}.page-heading{align-items:flex-start}.print-button{font-size:10px;padding:8px}.hero{padding:25px;min-height:210px}.hero h2{font-size:27px}.hero-art{display:none}.stats{gap:10px}.stats>div{padding:17px}.stats strong{font-size:24px}.stat-icon{display:none}.panel{padding:19px}.form-grid,.detail-grid{grid-template-columns:1fr}.compact{grid-template-columns:1fr}.compact>div{display:flex;align-items:center;justify-content:space-between}.compact strong{margin:0}.quick-links{grid-template-columns:1fr}.toolbar,.filters{width:100%}.filters input{width:100%}.main-footer{font-size:8px}.login-layout{grid-template-columns:1fr}.login-story{padding:25px 30px}.login-story>div:nth-child(2),.login-story>small{display:none}.login-form-wrap{padding:48px 25px;min-height:calc(100vh - 90px)}.installer{margin:20px;padding:25px}.total-bar{align-items:start;flex-direction:column}.inline{align-items:stretch}.inline label{min-width:180px}.form-footer{gap:10px}.table-wrap{font-size:11px}}
@media print{body{background:white!important;color:black!important}.sidebar,.topbar,.heading-actions,.main-footer,.detail-actions,.toolbar,.pagination,.no-print,form,.food-art{display:none!important}.app{margin:0}main{max-width:none;padding:0}.panel{border:0;box-shadow:none;padding:12px 0;break-inside:avoid}.table-wrap{overflow:visible}table{font-size:10px}td,th{padding:8px}.page-heading{margin:0 0 20px}.badge{background:none;color:black}.print-school{display:block}.receipt{max-width:none}a{color:black}.stats{grid-template-columns:repeat(4,1fr)}.hero{background:none;color:black;min-height:0}.hero p{color:black} @page{size:A4;margin:15mm}}
