:root{--background:#fff;--foreground:#171717;--accent:#5b5ea6;--border:#e5e5e5;--error:#b00020;--note:#1a7f37}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:hidden}body{color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--border);flex-direction:column;flex:0 0 200px;gap:4px;width:200px;padding:24px 16px;display:flex}.sidebar .brand{color:var(--accent);font-size:18px;font-weight:600}.sidebar-top{margin-bottom:20px}.menu-toggle{color:var(--accent);border:1px solid var(--border);background:0 0;border-radius:6px;padding:4px 12px;font-size:20px;line-height:1.4;display:none}.sidebar-body{flex-direction:column;flex:1;gap:4px;display:flex}.sidebar nav{flex:1}.sidebar nav ul{flex-direction:column;gap:2px;list-style:none;display:flex}.sidebar a{color:var(--foreground);border-radius:6px;padding:8px 10px;font-size:14px;display:block}.sidebar a:hover{background:#f2f2f7}.sidebar a.active{background:var(--accent);color:#fff}.sidebar .logout-btn{width:100%;margin-top:12px}.content{flex:1;min-width:0;max-width:1100px;padding:32px}@media (max-width:768px){.app-shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);background:var(--background);z-index:10;flex:none;width:auto;padding:10px 16px;position:-webkit-sticky;position:sticky;top:0}.sidebar-top{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.menu-toggle{display:block}.sidebar-body{display:none}.sidebar-body.open{padding-top:12px;display:flex}.sidebar a{padding:12px;font-size:16px}.sidebar .logout-btn{padding:12px 16px}.content{padding:16px}table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}input,select,textarea{min-width:0;max-width:100%}}@media (pointer:coarse){button,.btn,.btn-secondary{padding:12px 18px}input,select,textarea{padding:10px 12px;font-size:16px}}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--border);text-align:left;padding:8px}.num{text-align:right;font-variant-numeric:tabular-nums}button,.btn{background:var(--accent);color:#fff;border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:14px}button:hover,.btn:hover{opacity:.9}button:disabled,.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--accent);border:1px solid var(--accent);background:#fff}input,select,textarea{font:inherit;border:1px solid var(--border);color:inherit;background:#fff;border-radius:6px;padding:8px 10px}label{margin-bottom:4px;font-size:13px;display:block}.error{color:var(--error)}.note{color:var(--note)}.card{border:1px solid var(--border);border-radius:8px;padding:16px}.login{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login form{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:12px;width:100%;max-width:320px;padding:24px;display:flex}.login h1{color:var(--accent)}.login p{color:#555;font-size:13px}.login input{width:100%}
