:root{color:#0f172a;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f1f5f9;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:#f1f5f9;min-width:320px;margin:0}#root{min-height:100vh}.login-page{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:#fff;border-radius:16px;flex-direction:column;gap:8px;width:100%;max-width:390px;padding:20px;display:flex;box-shadow:0 6px 24px #0f172a14}.login-card .brand{align-self:center;width:180px}.login-card h1{text-align:center;margin:6px 0 0;font-size:24px}.login-card p{text-align:center;color:#64748b;margin:0 0 10px}input,select,textarea,button{font:inherit}input,select,textarea{background:#fff;border:1px solid #cbd5e1;border-radius:10px;width:100%;padding:10px}button{color:#fff;cursor:pointer;background:#1e88e5;border:none;border-radius:10px;padding:10px 14px;font-weight:700}button:disabled{opacity:.6;cursor:default}.app-shell{max-width:920px;margin:0 auto;padding:10px;position:relative}.topbar{justify-content:space-between;align-items:center;padding:10px 4px;display:flex}.logo{width:130px}.avatar-btn{background:#e2e8f0;border:1px solid #cbd5e1;border-radius:50%;width:42px;height:42px;padding:0;overflow:hidden}.avatar-btn img{object-fit:cover;width:100%;height:100%}.profile-menu{z-index:20;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:6px;min-width:180px;padding:8px;display:flex;position:absolute;top:62px;right:12px;box-shadow:0 8px 24px #0f172a1f}.profile-menu button{width:100%}.content{flex-direction:column;gap:12px;display:flex}.section{background:#fff;border-radius:14px;padding:12px;box-shadow:0 3px 14px #0f172a0f}.section h2{margin:0 0 8px;font-size:17px}.card{border:1px solid #e2e8f0;border-radius:12px;margin-bottom:10px;padding:10px}.card-head{align-items:center;gap:10px;display:flex}.card-logo{object-fit:contain;background:#fff;border:1px solid #e2e8f0;border-radius:10px;width:50px;height:50px}.card-head p,.card-head small{color:#64748b;margin:0}.grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;display:grid}.grid span{color:#64748b;font-size:12px;display:block}.grid strong{font-size:13px}.addr{margin:8px 0 0;font-size:13px}.value-row{color:#334155;justify-content:space-between;gap:8px;margin-top:6px;font-size:12px;display:flex}.map{border:1px solid #e2e8f0;border-radius:10px;width:100%;height:190px;margin-top:10px}.map-note{color:#64748b;flex-wrap:wrap;gap:8px;margin-top:6px;font-size:12px;display:flex}.external-links{flex-direction:column;gap:4px;margin-top:8px;display:flex}.external-links a{color:#1e88e5;font-size:13px;font-weight:600;text-decoration:none}.actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.ghost{color:#0f172a;background:#e2e8f0}.danger{background:#e53935}.error,.error-banner{color:#c62828;background:#ffebee;border:1px solid #ffcdd2;border-radius:10px;padding:8px;font-size:13px}.invalid-field{background:#fff8f8;border-color:#ef5350}.loading,.muted{color:#64748b;font-size:13px}.overlay{z-index:50;background:#0f172a66;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;flex-direction:column;gap:8px;width:100%;max-width:520px;max-height:90vh;padding:14px;display:flex;overflow:auto}.modal h3{margin:0}.row-inline{gap:8px;display:flex}.row-inline>div{flex:1}.row-inline button{white-space:nowrap}.shift-grid{grid-template-columns:1fr;gap:6px;display:grid}.shift-item{align-items:center;gap:8px;font-size:14px;display:flex}.shift-item input{width:auto}.modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.alert{color:#b26a00;background:#fff8e1;border:1px solid #ffe082;border-radius:10px;margin:0;padding:8px;font-size:12px}@media (width>=900px){.section h2{font-size:18px}.content{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.content .section:first-child{grid-column:1/-1}}.loading-overlay{z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background-color:#ffffffe6;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.spinner{border:4px solid #e2e8f0;border-top-color:#0ea5e9;border-radius:50%;width:48px;height:48px;margin-bottom:20px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{color:#334155;font-size:1.1rem;font-weight:500}.top-actions{align-items:center;gap:12px;display:flex}
