*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f5f7fa;color:#17202a}header{height:62px;background:#111;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:5}header b{font-size:22px}header small{display:block;color:#bbb}.top{display:flex;gap:18px;align-items:center}.top a{color:#fff}.shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 62px)}nav{background:#fff;border-right:1px solid #ddd;padding:16px 10px}nav a{display:block;padding:11px 12px;color:#222;text-decoration:none;border-radius:7px;margin:2px 0}nav a:hover{background:#eef3f7}main{padding:24px;min-width:0}h1{margin-top:0}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card,.notice{background:#fff;border:1px solid #d8dee5;border-radius:9px;padding:16px;margin-bottom:14px}.notice{background:#eef6ff}.good{color:#157347;font-weight:bold}.muted{color:#68737d}.actions{display:flex;flex-wrap:wrap;gap:9px}.actions form{margin:0}button{background:#111;color:#fff;border:0;border-radius:6px;padding:10px 14px;cursor:pointer}button:hover{opacity:.86}.flash{padding:10px 12px;border-radius:6px;margin-bottom:12px}.flash.ok{background:#e8f6ee}.flash.error{background:#fdecec}.table{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.tr{display:grid;grid-template-columns:180px 140px 170px 1fr;border-top:1px solid #eee;padding:9px}.tr.head{font-weight:bold;background:#111;color:#fff;border-top:0}footer{margin-top:35px;color:#77818b;font-size:12px}.login{display:grid;place-items:center;min-height:100vh}.login-card{width:min(380px,92vw)}label{display:block;margin:12px 0}input{width:100%;padding:10px;margin-top:5px;border:1px solid #bbb;border-radius:6px}.login-card small{display:block;margin-top:10px;color:#777}@media(max-width:800px){header{height:auto;padding:12px 15px}.top span{display:none}.shell{display:block}nav{border-right:0;border-bottom:1px solid #ddd;display:flex;overflow-x:auto;gap:4px;padding:8px}nav a{white-space:nowrap}main{padding:15px}.tr{grid-template-columns:1fr}.tr span{padding:2px 0}.tr.head{display:none}}
