:root{--bg:#f5f6f8;--panel:#fff;--text:#17191d;--muted:#747b85;--line:#e6e8ec;--accent:#22262c;--soft:#f0f2f5;--success:#176b44;--warning:#9a6300;--danger:#a33a3a;--radius:18px;--shadow:0 1px 2px rgba(16,24,40,.03)}*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.app{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;background:#111317;color:white}.brand{font-size:18px;font-weight:700;padding:7px 10px 26px}.brand small{display:block;color:#8d939c;font-size:11px;font-weight:500;margin-top:5px;letter-spacing:.05em;text-transform:uppercase}.nav{display:grid;gap:5px}.nav button{appearance:none;border:0;background:transparent;color:#9da3ac;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer}.nav button:hover,.nav button.active{background:#23262c;color:white}.content{padding:32px 38px 60px;min-width:0}.topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.title h1{font-size:28px;margin:0 0 7px}.title p{margin:0;color:var(--muted);font-size:14px}.badge{font-size:12px;padding:7px 10px;border-radius:999px;background:#eaedf1;color:#555c66}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.filters{padding:14px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.field{display:grid;gap:5px}.field label{font-size:11px;color:var(--muted);font-weight:600}.field select,.field input{border:1px solid var(--line);background:white;border-radius:10px;padding:9px 11px;min-height:40px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.card{padding:18px}.card .label{font-size:12px;color:var(--muted);margin-bottom:12px}.card .value{font-size:30px;font-weight:700;letter-spacing:-.03em}.card .sub{font-size:12px;color:var(--muted);margin-top:8px}.grid2{display:grid;grid-template-columns:1.45fr 1fr;gap:14px;margin-top:14px}.section{padding:19px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.section-head h2{font-size:16px;margin:0}.section-head span{font-size:12px;color:var(--muted)}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:9px 8px}td{padding:10px 8px;border-bottom:1px solid #f0f1f3}td.num,th.num{text-align:right}.chart{width:100%;height:260px;display:block}.chart-grid{stroke:#eceef1;stroke-width:1}.chart-start{fill:none;stroke:#252a31;stroke-width:2.5}.chart-finish{fill:none;stroke:#9aa0a9;stroke-width:2.5}.legend{display:flex;gap:16px;font-size:12px;color:var(--muted)}.legend i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:5px;background:#252a31}.legend i.gray{background:#9aa0a9}.empty{padding:58px 24px;text-align:center}.empty h2{font-size:18px;margin:0 0 8px}.empty p{color:var(--muted);max-width:520px;margin:0 auto 20px;line-height:1.5}.btn{border:0;border-radius:10px;padding:10px 14px;background:#17191d;color:white;cursor:pointer}.btn.secondary{background:#eef0f3;color:#222}.upload{padding:26px;border:1.5px dashed #cfd3d9;border-radius:15px;text-align:center;background:#fafbfc;transition:.15s}.upload.drag{border-color:#6e7681;background:#f2f4f7}.upload h2{margin:8px 0;font-size:18px}.upload p{color:var(--muted);font-size:13px;margin:0 0 16px}.upload input{display:none}.result{padding:18px;margin-top:14px}.result-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px}.result-item{background:#f7f8fa;border-radius:12px;padding:12px}.result-item b{display:block;font-size:17px;margin-top:4px}.result-item span{font-size:11px;color:var(--muted)}.status-ok{color:var(--success)}.status-warn{color:var(--warning)}.history{margin-top:14px}.history-row{display:grid;grid-template-columns:1.5fr 1fr .8fr .6fr;gap:12px;align-items:center;padding:12px 8px;border-bottom:1px solid var(--line);font-size:13px}.history-row small{color:var(--muted)}.notice{padding:12px 14px;border-radius:12px;background:#fff8e8;color:#765100;font-size:13px;margin-bottom:14px}.latest{margin-left:8px;border:0;background:transparent;text-decoration:underline;color:#555;cursor:pointer;font-size:12px}.hidden{display:none!important}.error-list{margin-top:14px;max-height:240px;overflow:auto;border-top:1px solid var(--line)}.error-row{display:grid;grid-template-columns:90px 70px 1fr 1.4fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.muted{color:var(--muted)}@media(max-width:1000px){.app{grid-template-columns:180px 1fr}.content{padding:25px 22px}.cards{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}.result-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.app{display:block}.sidebar{height:auto;position:static;padding:12px}.brand{padding:5px 5px 12px}.nav{display:flex;overflow:auto}.nav button{white-space:nowrap}.content{padding:20px 14px}.cards{grid-template-columns:1fr 1fr}.topline{align-items:flex-start}.result-grid{grid-template-columns:1fr 1fr}.history-row{grid-template-columns:1fr 1fr}.history-row>:nth-child(3),.history-row>:nth-child(4){text-align:left!important}}

/* v0.4 activity table + source-detail improvements */
.activity-section,.park-section{margin-top:14px}.section-note{margin:5px 0 0;color:var(--muted);font-size:12px}.table-scroll{width:100%;overflow-x:auto}.rank{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;margin-right:8px;border-radius:7px;background:#f0f2f5;color:#555c66;font-size:11px;font-weight:700}.rank.subtle{background:#f7f8fa;color:#8b919a}.raw-details{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.raw-details summary{cursor:pointer;font-size:13px;font-weight:650;list-style:none;display:flex;align-items:center;gap:8px;width:max-content;max-width:100%}.raw-details summary::-webkit-details-marker{display:none}.raw-details summary:before{content:'›';display:inline-block;font-size:20px;line-height:14px;transition:transform .12s}.raw-details[open] summary:before{transform:rotate(90deg)}.raw-details summary span{font-size:11px;font-weight:600;color:var(--muted);padding:3px 7px;background:#f2f4f7;border-radius:999px}.raw-table{margin-top:12px;max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:12px}.raw-table thead{position:sticky;top:0;background:white;z-index:1}.value-small{font-size:20px;letter-spacing:0}.info-note{padding:12px 14px;border-radius:12px;background:#f2f6fb;color:#465363;font-size:13px;margin-top:10px}.cards .card .value .value-small{font-weight:700}.activity-section tbody tr:first-child td{font-weight:600}

/* v0.5 overview dashboard */
.overview-group{margin-top:22px}.overview-group-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:10px}.overview-group-head h2{margin:0;font-size:17px}.overview-group-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.metric-grid{display:grid;gap:12px}.metric-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-card{padding:17px;min-height:126px}.metric-card .label{font-size:12px;color:var(--muted);min-height:30px}.metric-card .value{font-size:27px;font-weight:750;letter-spacing:-.03em;margin-top:7px}.metric-card .sub{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.35}.overview-chart{margin-top:14px}.overview-series{fill:none;stroke-width:2.2}.overview-series.series-a{stroke:#20242a}.overview-series.series-b{stroke:#6b7280}.overview-series.series-c{stroke:#9ca3af}.overview-series.series-d{stroke:#c7ccd4}.overview-legend{margin-bottom:8px;flex-wrap:wrap}.overview-legend i.series-a{background:#20242a}.overview-legend i.series-b{background:#6b7280}.overview-legend i.series-c{background:#9ca3af}.overview-legend i.series-d{background:#c7ccd4}.legacy-note{margin-top:12px}.file-kind{font-size:11px;padding:5px 8px;border-radius:999px;background:#f0f2f5;color:#555c66}.overview-filters{margin-bottom:4px}.overview-filters .field:first-child{min-width:210px}
@media(max-width:1250px){.metric-grid.five,.metric-grid.six{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.metric-grid.five,.metric-grid.four,.metric-grid.six{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.metric-grid.five,.metric-grid.four,.metric-grid.six{grid-template-columns:1fr}.metric-card{min-height:auto}}

/* v0.6 Apple-inspired visual refresh */
:root{
  --bg:#f5f5f7;
  --panel:rgba(255,255,255,.78);
  --text:#1d1d1f;
  --muted:#6e6e73;
  --line:rgba(210,210,215,.72);
  --accent:#0071e3;
  --accent-2:#34c759;
  --accent-3:#ff9f0a;
  --accent-4:#af52de;
  --soft:#fbfbfd;
  --success:#14833b;
  --warning:#9c6a00;
  --danger:#c73d2c;
  --radius:24px;
  --shadow:0 12px 30px rgba(15,23,42,.06),0 2px 10px rgba(15,23,42,.04);
}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Segoe UI",Roboto,Arial,sans-serif;
  background:
    radial-gradient(circle at top left, rgba(0,113,227,.08), transparent 28%),
    radial-gradient(circle at top right, rgba(175,82,222,.08), transparent 22%),
    linear-gradient(180deg,#fbfbfd 0%,#f5f5f7 100%);
  color:var(--text);
}
.app{grid-template-columns:258px 1fr;}
.sidebar{
  background:rgba(251,251,253,.7);
  color:var(--text);
  border-right:1px solid rgba(210,210,215,.7);
  backdrop-filter:blur(18px) saturate(1.2);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);
}
.brand{font-size:21px;font-weight:700;letter-spacing:-.02em;padding:12px 10px 28px;}
.brand small{color:#86868b;font-size:11px;letter-spacing:.08em;}
.nav{gap:8px;}
.nav button{
  color:#515154;
  padding:12px 14px;
  border-radius:14px;
  font-weight:600;
  transition:all .18s ease;
}
.nav button:hover{
  background:rgba(255,255,255,.72);
  color:var(--text);
  box-shadow:0 1px 2px rgba(0,0,0,.03);
}
.nav button.active{
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(246,246,248,.9));
  color:var(--text);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.75), 0 8px 18px rgba(15,23,42,.07);
}
.content{padding:34px 40px 64px;}
.topline{margin-bottom:22px;}
.title h1{font-size:34px;letter-spacing:-.04em;font-weight:700;}
.title p{font-size:14px;color:#6e6e73;}
.badge{
  background:rgba(255,255,255,.72);
  color:#4f5661;
  border:1px solid rgba(210,210,215,.65);
  backdrop-filter:blur(8px);
}
.panel{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.82);
  box-shadow:var(--shadow);
  backdrop-filter:blur(22px) saturate(1.2);
  -webkit-backdrop-filter:blur(22px) saturate(1.2);
}
.filters,.section,.card,.metric-card,.result{
  background:transparent;
}
.filters{
  padding:16px;
  border-radius:22px;
}
.field{gap:6px;}
.field label{font-size:11px;color:#8b8b91;letter-spacing:.01em;}
.field select,.field input{
  border:1px solid rgba(210,210,215,.8);
  background:rgba(255,255,255,.92);
  border-radius:14px;
  padding:10px 13px;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.7);
}
.field select:focus,.field input:focus{
  outline:none;
  border-color:rgba(0,113,227,.55);
  box-shadow:0 0 0 4px rgba(0,113,227,.14);
}
.card,.metric-card{
  border-radius:22px;
  background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(250,250,252,.78));
  box-shadow:0 8px 24px rgba(15,23,42,.06);
}
.card .label,.metric-card .label{color:#6e6e73;font-size:12px;}
.card .value,.metric-card .value{
  color:#1d1d1f;
  font-weight:700;
  letter-spacing:-.045em;
}
.card .sub,.metric-card .sub,.section-head span,.section-note,.muted{color:#86868b;}
.section{padding:22px;}
.section-head h2,.overview-group-head h2{font-size:19px;letter-spacing:-.02em;}
.section-head span,.overview-group-head p{font-size:12px;}
.overview-group-head{margin-bottom:12px;}
.overview-group{margin-top:26px;}
.metric-grid{gap:14px;}
.metric-card{min-height:132px;}
.metric-card .value{font-size:29px;}
.btn{
  background:linear-gradient(180deg,#0a84ff,#0071e3);
  color:#fff;
  border-radius:14px;
  padding:11px 16px;
  font-weight:600;
  box-shadow:0 8px 18px rgba(0,113,227,.25);
}
.btn:hover{filter:brightness(1.03);}
.btn.secondary{
  background:rgba(255,255,255,.92);
  color:var(--text);
  border:1px solid rgba(210,210,215,.8);
  box-shadow:none;
}
.upload{
  background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(246,246,248,.75));
  border:1.5px dashed rgba(0,113,227,.26);
  border-radius:22px;
}
.upload.drag{
  border-color:rgba(0,113,227,.55);
  background:linear-gradient(180deg,rgba(240,248,255,.92),rgba(248,250,255,.85));
}
.result-item{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(255,255,255,.85);
  border-radius:16px;
}
.notice{
  background:rgba(255,249,235,.92);
  color:#7c5a00;
  border:1px solid rgba(255,223,140,.55);
}
.info-note{
  background:rgba(237,245,255,.92);
  color:#24415c;
  border:1px solid rgba(0,113,227,.12);
}
.history-row{
  padding:14px 10px;
  border-bottom:1px solid rgba(210,210,215,.48);
}
.file-kind{
  background:rgba(0,113,227,.08);
  color:#0060c7;
}
.latest{color:#0066cc;}
table{font-size:13px;}
th{
  color:#8b8b91;
  font-weight:600;
  border-bottom:1px solid rgba(210,210,215,.72);
}
td{border-bottom:1px solid rgba(240,241,243,.88);}
.activity-section tbody tr:hover td,
.park-section tbody tr:hover td,
.raw-table tbody tr:hover td,
section table tbody tr:hover td{
  background:rgba(0,113,227,.035);
}
.rank{
  background:rgba(0,113,227,.08);
  color:#0066cc;
}
.rank.subtle{
  background:rgba(175,82,222,.1);
  color:#8e44c8;
}
.raw-details summary span{
  background:rgba(0,113,227,.08);
  color:#0066cc;
}
.raw-table,.error-list{border-radius:16px;}
.raw-table thead{background:rgba(255,255,255,.92);}
.legend,.overview-legend{display:flex;gap:18px;font-size:12px;color:#6e6e73;}
.legend i,.overview-legend i{box-shadow:0 0 0 4px rgba(255,255,255,.45);}
.chart{height:280px;}
.chart-grid{stroke:rgba(220,224,230,.9);}
.chart-start{stroke:#0a84ff;stroke-width:3;}
.chart-finish{stroke:#34c759;stroke-width:3;}
.legend i{background:#0a84ff;}
.legend i.gray{background:#34c759;}
.overview-series{stroke-width:2.8;}
.overview-series.series-a{stroke:#0a84ff;}
.overview-series.series-b{stroke:#34c759;}
.overview-series.series-c{stroke:#ff9f0a;}
.overview-series.series-d{stroke:#af52de;}
.overview-legend i.series-a{background:#0a84ff;}
.overview-legend i.series-b{background:#34c759;}
.overview-legend i.series-c{background:#ff9f0a;}
.overview-legend i.series-d{background:#af52de;}
.empty{
  background:linear-gradient(180deg,rgba(255,255,255,.65),rgba(250,250,252,.55));
  border-radius:24px;
}
.status-ok{color:#14833b;}
.status-warn{color:#a36d00;}
.error-row{border-bottom:1px solid rgba(210,210,215,.45);}
@media(max-width:1000px){
  .app{grid-template-columns:200px 1fr;}
}
@media(max-width:700px){
  .sidebar{
    border-right:0;
    border-bottom:1px solid rgba(210,210,215,.7);
  }
  .nav button.active{box-shadow:inset 0 0 0 1px rgba(255,255,255,.85);}
}

/* v0.7 interactive overview chart */
.overview-chart-canvas{position:relative;min-width:0;}
.overview-hover-zone{fill:transparent;pointer-events:all;cursor:crosshair;}
.overview-hover-line{stroke:rgba(110,110,115,.5);stroke-width:1;stroke-dasharray:3 3;opacity:0;pointer-events:none;transition:opacity .08s ease;}
.overview-hover-line.show{opacity:1;}
.overview-marker{opacity:0;stroke:#fff;stroke-width:2;pointer-events:none;transition:opacity .08s ease;}
.overview-marker.show{opacity:1;}
.overview-marker.series-a{fill:#0a84ff;}
.overview-marker.series-b{fill:#34c759;}
.overview-marker.series-c{fill:#ff9f0a;}
.overview-marker.series-d{fill:#af52de;}
.overview-tooltip{
  position:absolute;
  z-index:20;
  min-width:248px;
  padding:15px 16px 13px;
  border-radius:16px;
  background:rgba(29,31,38,.96);
  color:#fff;
  box-shadow:0 18px 45px rgba(0,0,0,.25);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  opacity:0;
  transform:translateY(4px);
  pointer-events:none;
  transition:opacity .08s ease,transform .08s ease;
}
.overview-tooltip.show{opacity:1;transform:translateY(0);}
.overview-tooltip-date{font-size:13px;color:#b8bbc3;margin-bottom:10px;font-weight:600;}
.overview-tooltip-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:5px 0;font-size:14px;}
.overview-tooltip-row b{font-size:14px;font-variant-numeric:tabular-nums;}
.overview-tooltip-label{display:flex;align-items:center;gap:8px;color:#f5f5f7;white-space:nowrap;}
.overview-tooltip-label i{width:9px;height:9px;border-radius:50%;display:inline-block;flex:0 0 auto;}
.overview-tooltip-label i.series-a{background:#0a84ff;}
.overview-tooltip-label i.series-b{background:#34c759;}
.overview-tooltip-label i.series-c{background:#ff9f0a;}
.overview-tooltip-label i.series-d{background:#af52de;}
.overview-chart .section-head>span{font-size:12px;color:#86868b;background:rgba(255,255,255,.7);border:1px solid rgba(210,210,215,.55);padding:7px 10px;border-radius:999px;}

/* v0.9 report export */
.filter-actions{margin-left:auto;display:flex;align-items:end;padding-top:17px}.export-btn{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.export-btn::before{content:'↓';font-size:16px;font-weight:700}.export-btn.secondary{color:#0066cc;background:rgba(255,255,255,.92);border-color:rgba(0,113,227,.16)}
@media(max-width:700px){.filter-actions{width:100%;margin-left:0;padding-top:2px}.export-btn{width:100%;justify-content:center}}

/* v1.0 authentication, roles and users */
.sidebar{display:flex;flex-direction:column}.nav{flex:1}.sidebar-user{padding:16px 6px 2px;border-top:1px solid rgba(210,210,215,.58);margin-top:18px}.sidebar-user-info{display:flex;align-items:center;gap:10px;min-width:0}.sidebar-avatar,.user-avatar{display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;background:linear-gradient(145deg,#0a84ff,#6e5ce6);color:white;flex:0 0 auto}.sidebar-avatar{width:34px;height:34px;font-size:13px}.sidebar-user-info>div:last-child{min-width:0}.sidebar-user-info b{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-info span{display:block;color:#86868b;font-size:11px;margin-top:3px}.sidebar-logout{border:0;background:transparent;color:#0066cc;padding:9px 0 0;cursor:pointer;font-size:12px;font-weight:600}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,rgba(0,113,227,.11),transparent 28%),radial-gradient(circle at 85% 20%,rgba(175,82,222,.11),transparent 24%),linear-gradient(180deg,#fbfbfd,#f5f5f7)}.auth-card{width:min(440px,100%);padding:34px;border-radius:30px;background:rgba(255,255,255,.82);border:1px solid rgba(255,255,255,.88);box-shadow:0 24px 70px rgba(15,23,42,.12),0 2px 10px rgba(15,23,42,.04);backdrop-filter:blur(26px) saturate(1.2);-webkit-backdrop-filter:blur(26px) saturate(1.2)}.auth-brand{font-size:20px;font-weight:750;letter-spacing:-.03em;margin-bottom:28px}.auth-brand span{display:block;font-size:11px;color:#86868b;text-transform:uppercase;letter-spacing:.09em;margin-top:4px}.auth-card h1{font-size:30px;line-height:1.08;letter-spacing:-.045em;margin:0 0 10px}.auth-sub{font-size:14px;line-height:1.5;color:#6e6e73;margin:0 0 24px}.auth-form,.admin-form{display:grid;gap:14px}.auth-form label,.admin-form>label{display:grid;gap:7px;font-size:12px;font-weight:650;color:#5e5e63}.auth-form input,.admin-form input,.admin-form select{width:100%;border:1px solid rgba(210,210,215,.9);background:rgba(255,255,255,.94);border-radius:14px;padding:12px 13px;color:#1d1d1f;outline:none;transition:.15s}.auth-form input:focus,.admin-form input:focus,.admin-form select:focus{border-color:rgba(0,113,227,.58);box-shadow:0 0 0 4px rgba(0,113,227,.13)}.auth-btn{margin-top:4px;width:100%;min-height:46px}.auth-message{padding:11px 13px;border-radius:13px;margin:0 0 16px;font-size:12px}.auth-message.error,.form-error{background:rgba(255,59,48,.08);color:#a52b22;border:1px solid rgba(255,59,48,.12)}.form-error{padding:9px 11px;border-radius:11px;font-size:12px;margin-top:2px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-form fieldset{border:0;padding:2px 0 0;margin:0;display:grid;gap:8px}.admin-form legend{font-size:12px;font-weight:650;color:#5e5e63;margin-bottom:8px}.permission-check{display:flex;align-items:flex-start;gap:10px;border:1px solid rgba(210,210,215,.72);border-radius:15px;padding:11px 12px;background:rgba(255,255,255,.66);cursor:pointer}.permission-check input{width:17px;height:17px;margin:2px 0 0;accent-color:#0071e3}.permission-check span{display:block}.permission-check b{display:block;font-size:12px;color:#1d1d1f}.permission-check small{display:block;font-size:11px;color:#86868b;margin-top:3px;line-height:1.35}.admin-section{margin-top:14px}.role-list,.user-list{display:grid}.role-row,.user-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px;border-bottom:1px solid rgba(210,210,215,.5)}.role-row:last-child,.user-row:last-child{border-bottom:0}.role-title{font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px}.system-chip{font-size:10px;font-weight:650;color:#0066cc;background:rgba(0,113,227,.08);padding:4px 7px;border-radius:999px}.permission-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.permission-chips span{font-size:10px;color:#5f6570;background:rgba(118,118,128,.08);padding:4px 7px;border-radius:999px}.role-actions{display:flex;align-items:center;gap:12px}.role-count{font-size:11px;color:#86868b}.text-btn{border:0;background:transparent;color:#0066cc;font-size:12px;font-weight:600;cursor:pointer;padding:5px}.user-main{display:flex;align-items:center;gap:11px;min-width:0}.user-avatar{width:38px;height:38px;font-size:14px}.user-main b{display:block;font-size:13px}.user-main small{display:block;font-size:11px;color:#86868b;margin-top:4px}.user-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.user-controls select{border:1px solid rgba(210,210,215,.8);background:rgba(255,255,255,.88);border-radius:11px;padding:8px 10px;font-size:12px}.user-row.is-disabled{opacity:.5}.security-note{margin-top:14px;padding:13px 15px;border-radius:15px;background:rgba(255,159,10,.08);border:1px solid rgba(255,159,10,.13);color:#69521f;font-size:12px;line-height:1.45}.security-note b{color:#59420f}
@media(max-width:960px){.admin-grid{grid-template-columns:1fr}.user-row{align-items:flex-start;flex-direction:column}.user-controls{justify-content:flex-start;width:100%}}
@media(max-width:700px){.sidebar-user{display:none}.auth-card{padding:26px}.auth-card h1{font-size:26px}}
