
@font-face{font-family:Inter;src:local("Inter"), local("Inter Regular");}
:root{--bg:#f5f6f8;--card:#ffffff;--text:#111827;--muted:#6b7280;--primary:#2e7d32;--primary-contrast:#ffffff;--accent:#1e88e5;--radius:18px;--shadow:0 8px 24px rgba(0,0,0,.08)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;}
.app-frame{width:420px;max-width:100vw;margin:0 auto;min-height:100vh;position:relative;background:var(--bg);}
header.topbar{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--card);box-shadow:var(--shadow);position:sticky;top:0;z-index:20;}
header .burger{border:none;background:transparent;font-size:24px;line-height:1;cursor:pointer}
header .title{font-weight:700;font-size:18px}
.content{padding:16px 14px 80px 14px;}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;}
.muted{color:var(--muted)}
.row{display:flex;gap:12px;align-items:center}
.progress{height:8px;background:#e5e7eb;border-radius:999px;overflow:hidden}
.progress > span{display:block;height:100%;background:var(--accent);width:50%}
.btn{display:flex;align-items:center;justify-content:center;border:none;border-radius:14px;padding:14px 16px;font-weight:600;cursor:pointer;text-decoration:none;box-shadow:var(--shadow);}
.btn-primary{background:var(--primary);color:var(--primary-contrast)}
.btn-accent{background:var(--accent);color:white}
.btn-ghost{background:#fff;color:#111;border:1px solid #e5e7eb}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.footer-bar{position:fixed;bottom:0;left:0;right:0;background:var(--card);box-shadow:0 -8px 24px rgba(0,0,0,.06);padding:10px 12px}
.footer-bar .row{justify-content:space-around}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:40}
.sidebar{position:fixed;top:0;left:0;height:100vh;width:320px;background:var(--card);transform:translateX(-100%);transition:transform .25s ease;z-index:41;box-shadow:var(--shadow);padding:18px}
.sidebar.open{transform:translateX(0)}
.sidebar-backdrop.open{opacity:1;pointer-events:auto}
.profile{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.profile .pic{width:64px;height:64px;border-radius:999px;background:#e5e7eb;background-size:cover;background-position:center}
.profile .name{font-weight:700}
.menu a{display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;color:var(--text);text-decoration:none}
.menu a.active,.menu a:hover{background:#f3f4f6}
form .field{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
input,select,textarea{width:100%;padding:12px 12px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;font-size:16px}
label{font-size:13px;color:var(--muted)}
.table{width:100%;border-collapse:separate;border-spacing:0 8px}
.table th{font-size:12px;color:var(--muted);text-align:left;padding:6px 8px}
.table td{background:var(--card);padding:10px 8px;border-top:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0}
.badge{padding:4px 8px;border-radius:999px;font-size:12px}
.badge.red{background:#fee2e2;color:#991b1b}
.badge.green{background:#dcfce7;color:#166534}
.notice{padding:12px;border-radius:12px;background:#fff3cd;color:#664d03;margin-bottom:12px;border:1px solid #ffecb5}
