:root{
  --bg:#eef4fb;
  --panel:#ffffff;
  --ink:#111827;
  --muted:#6b7280;
  --line:#e5e7eb;
  --dark:#0f172a;
  --good:#047857;
  --bad:#b91c1c;
  --warn:#b45309;
  --blue:#1d4ed8;
  --soft:#f3f4f6;
  --radius:18px;
}
*{box-sizing:border-box}
body{margin:0;background:linear-gradient(135deg,#eef4fb 0%,#f8fbff 45%,#fff 100%);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;}
button,input,select,textarea{font:inherit}
button{border:0;border-radius:14px;background:linear-gradient(135deg,#0f172a,#1e293b);color:white;padding:12px 16px;font-weight:900;cursor:pointer;box-shadow:0 6px 14px rgba(15,23,42,.12)}
button.secondary{background:#e5e7eb;color:#111827}
button.good{background:var(--good)}
button.bad{background:var(--bad)}
button.warn{background:var(--warn)}
button.blue{background:var(--blue)}
button:disabled{opacity:.45;cursor:not-allowed}
button.mini{padding:6px 9px;border-radius:10px;font-size:12px;margin-top:6px}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink)}
textarea{min-height:92px;resize:vertical}
label{display:block;font-size:13px;color:#374151;font-weight:800;margin:10px 0 6px}
small{color:var(--muted)}
.app{min-height:100vh;display:flex;}
.sidebar{width:290px;background:linear-gradient(180deg,#0f172a 0%,#111827 55%,#1e293b 100%);color:white;padding:20px;position:sticky;top:0;height:100vh;overflow:auto}
.logo{font-weight:950;font-size:22px;letter-spacing:-.04em;margin-bottom:4px}
.sublogo{color:#cbd5e1;font-size:13px;margin-bottom:18px;line-height:1.35}
.nav button{display:block;width:100%;text-align:left;background:transparent;color:#e5e7eb;border:1px solid rgba(255,255,255,.08);margin:7px 0;padding:12px;border-radius:12px}
.nav button.active{background:white;color:#111827}
.content{flex:1;padding:24px;max-width:1400px;margin:0 auto;width:100%}
.topbar{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px;flex-wrap:wrap}
.h1{font-size:30px;font-weight:950;letter-spacing:-.045em;margin:0}
.card{background:rgba(255,255,255,.92);border:1px solid rgba(203,213,225,.75);border-radius:var(--radius);padding:18px;box-shadow:0 14px 34px rgba(15,23,42,.07);margin-bottom:16px;backdrop-filter:blur(8px)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.col-2{grid-column:span 2}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:6px;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:999px;padding:6px 10px;font-weight:800;font-size:12px;color:#374151}
.badge.good{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.badge.bad{background:#fef2f2;color:#991b1b;border-color:#fecaca}.badge.warn{background:#fffbeb;color:#92400e;border-color:#fde68a}.badge.blue{background:#eff6ff;color:#1e40af;border-color:#bfdbfe}
.table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:14px;font-size:14px}
.table th,.table td{border-bottom:1px solid var(--line);padding:11px;text-align:left;vertical-align:top}
.table th{background:#f9fafb;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#4b5563}
.kpi{background:#f9fafb;border:1px solid var(--line);border-radius:16px;padding:14px}
.kpi .num{font-weight:950;font-size:26px;letter-spacing:-.04em}.kpi .label{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase}
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login{max-width:520px;width:100%}.login .brand{font-size:34px;font-weight:950;letter-spacing:-.055em;text-align:center}.login .tag{text-align:center;color:var(--muted);margin:8px 0 20px}.rules{max-height:420px;overflow:auto;padding-right:8px}.rule{padding:12px;border:1px solid var(--line);border-radius:14px;margin-bottom:9px;background:#fff}.rule b{display:block;margin-bottom:4px}.question{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;margin:12px 0}.timer{font-variant-numeric:tabular-nums;font-size:36px;font-weight:950;letter-spacing:-.05em}.timer.small{font-size:20px}.progress{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden}.bar{height:100%;background:#111827;width:0%}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.thumb{border:1px solid var(--line);border-radius:12px;background:#f9fafb;min-height:110px;display:grid;place-items:center;overflow:hidden}.thumb img,.thumb video{width:100%;height:100%;object-fit:cover}.notice{border-left:5px solid #111827;background:#f9fafb;border-radius:12px;padding:13px;line-height:1.45}.danger-zone{border-color:#fecaca;background:#fff7f7}.mobile-only{display:none}
@media(max-width:900px){.app{display:block}.sidebar{position:relative;width:100%;height:auto}.content{padding:16px}.grid{grid-template-columns:1fr}.col-12,.col-8,.col-6,.col-4,.col-3,.col-2{grid-column:span 1}.h1{font-size:24px}.mobile-only{display:block}.timer{font-size:30px}}
@media print{.sidebar,.no-print,button,input,select,textarea{display:none!important}.content{padding:0}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}}

.final-version{font-size:11px;font-weight:900;letter-spacing:.06em;color:#fbbf24;background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);padding:8px;border-radius:10px;margin:8px 0;text-transform:uppercase}
.step-list{display:grid;gap:10px;margin:12px 0}
.step-row{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}
.step-row.done{background:#ecfdf5;border-color:#a7f3d0}
.step-row small{font-weight:700}
@media(max-width:700px){.step-row{display:block}.step-row .row{margin-top:10px}}
.new-note{border-color:#f59e0b;background:#fffbeb}

.media-summary{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}.media-modal{position:fixed;inset:0;background:rgba(15,23,42,.72);z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px}.media-modal-inner{background:white;border-radius:22px;max-width:1100px;max-height:88vh;overflow:auto;width:100%;padding:20px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.media-modal .photo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.media-modal .thumb{min-height:180px}.media-modal .thumb small{display:block;padding:6px;background:#f8fafc;width:100%}
.card h2{letter-spacing:-.03em}.nav button:hover{background:rgba(255,255,255,.10)}.nav button.active{box-shadow:0 10px 22px rgba(255,255,255,.09)}
