:root{--color-bg:#f5f4f1;--color-surface:#fff;--color-border:#ddd9d3;--color-text:#2d2d2d;--color-text-muted:#7a7872;--color-primary:#e8860c;--color-primary-hover:#c7730a;--color-primary-light:#fef3e4;--sidebar-width:220px;color:var(--color-text);font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg)}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:16px;width:380px;padding:48px;display:flex}.login-logo{object-fit:contain;width:56px;height:56px}.login-card h1{font-size:20px;font-weight:600}.login-card p{color:var(--color-text-muted);font-size:13px}.login-divider{width:100%;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:8px;margin-top:8px;font-size:11px;display:flex}.login-divider:before,.login-divider:after{content:"";border-top:1px solid var(--color-border);flex:1}.auth-callback{min-height:100vh;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:13px;display:flex}.app-shell{min-height:100vh;display:flex}.app-main{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;display:flex}.app-content{flex:1;padding:32px;overflow-y:auto}.app-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:10;flex-direction:column;height:100vh;padding:0;display:flex;position:fixed;top:0;left:0}.sidebar-brand{border-bottom:1px solid var(--color-border);align-items:center;gap:10px;margin-bottom:8px;padding:16px;display:flex}.brand-logo{object-fit:contain;flex-shrink:0;width:30px;height:30px}.brand-name{font-size:14px;font-weight:600}.sidebar-section{padding:4px 8px}.sidebar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:8px 8px 4px;font-size:10px;font-weight:500}.nav-item{color:var(--color-text);cursor:pointer;border-radius:6px;align-items:center;gap:9px;padding:7px 10px;font-size:13.5px;text-decoration:none;transition:background .1s;display:flex}.nav-item:hover{background:var(--color-bg)}.nav-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:500}button.nav-item{text-align:left;background:0 0;border:none;width:100%;font-family:inherit;font-size:13.5px}.nav-icon{flex-shrink:0;font-size:15px}.sidebar-user{flex-direction:column;gap:6px;padding:12px 10px 8px;display:flex}.user-email{color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;padding:0 2px;font-size:11px;overflow:hidden}.dashboard h1{margin-bottom:24px;font-size:20px;font-weight:600}.app-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;max-width:900px;display:grid}.app-card{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:10px;text-decoration:none;transition:box-shadow .15s,border-color .15s;overflow:hidden}.app-card:hover{border-color:#c8c8c8;box-shadow:0 4px 14px #00000012}.app-card-bar{height:5px}.app-card-body{padding:18px 20px 20px}.app-card-body h2{margin-bottom:5px;font-size:15px;font-weight:600}.app-card-body p{color:var(--color-text-muted);font-size:12.5px;line-height:1.5}.app-placeholder{color:var(--color-text-muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.app-placeholder h2{color:var(--color-text);font-size:18px;font-weight:600}.admin-page h1{margin-bottom:24px;font-size:20px;font-weight:600}.admin-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;max-width:900px;margin-bottom:20px;padding:24px}.admin-section h2{margin-bottom:14px;font-size:15px;font-weight:600}.invite-form{align-items:center;gap:10px;margin-bottom:10px;display:flex}.admin-hint{color:var(--color-text-muted);margin-top:8px;font-size:12px;line-height:1.5}.form-error{color:#dc2626;margin-top:6px;font-size:12px}.form-success{color:#16803c;margin-top:6px;font-size:12px}.admin-table{border-collapse:collapse;width:100%;font-size:13px}.admin-table th{text-align:left;border-bottom:1px solid var(--color-border);color:var(--color-text-muted);padding:8px 12px;font-size:12px;font-weight:500}.admin-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:10px 12px}.admin-table tr:last-child td{border-bottom:none}.admin-user-name{font-weight:500}.admin-user-email{color:var(--color-text-muted);font-size:11px}.role-select{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:5px;padding:4px 8px;font-size:12px}.sidebar-bottom{border-top:1px solid var(--color-border);margin-top:auto;padding:8px}.input{border:1px solid var(--color-border);width:100%;color:var(--color-text);background:var(--color-surface);border-radius:6px;outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s}.input:focus{border-color:var(--color-primary)}.btn-primary{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:10px 20px;font-size:14px;font-weight:500;transition:background .1s}.btn-primary:hover{background:var(--color-primary-hover)}.btn-primary-sm{background:var(--color-primary);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:background .1s}.btn-primary-sm:hover{background:var(--color-primary-hover)}.btn-primary-sm:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-muted);background:0 0;border-radius:6px;padding:5px 12px;font-size:12px;transition:background .1s}.btn-ghost:hover{background:var(--color-bg);color:var(--color-text)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:22px;height:22px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}
