:root{
  --bg:#f4f6f8;--panel:#fff;--ink:#1c2733;--muted:#6b7a8a;--line:#e2e8ee;
  --accent:#1f7a5c;--soft:#e6f3ee;--blue:#2b6cb0;--blue-soft:#e8f0fa;
  --warn:#b7791f;--warn-soft:#fdf3df;--bad:#c53030;--bad-soft:#fdeaea;
  --ok:#2f855a;--ok-soft:#e7f5ec;--radius:14px;--shadow:0 6px 20px rgba(28,39,51,.06)
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
.sidebar{background:#12212b;color:#dbe7ef;padding:18px 14px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh}
.brand{font-weight:700;padding:6px 8px 18px;font-size:16px}.brand .dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#43c08c;margin-right:8px}
.nav{display:flex;flex-direction:column;gap:2px}.nav a{color:#c9d8e3;text-decoration:none;padding:9px 12px;border-radius:10px;font-size:14px}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.1);padding-top:12px;font-size:12px;color:#9fb2c0}
.side-foot b{display:block;color:#fff;font-size:14px;margin-bottom:2px}
main{padding:22px 26px 40px;max-width:1280px;width:100%}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.crumb{color:var(--muted);font-size:13px}.pill{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:13px}
h1{font-size:24px;margin:0 0 4px}h2{font-size:17px;margin:0 0 12px}.sub{color:var(--muted);margin:0 0 18px;font-size:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
table{width:100%;border-collapse:collapse}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}
.t-title{font-weight:600;margin-bottom:3px}.t-meta{color:var(--muted);font-size:12.5px}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:#eef2f6;border-radius:999px;padding:4px 9px;font-size:12px;color:#3c4c5c}
.chip.green{background:var(--ok-soft);color:#276749}.chip.blue{background:var(--blue-soft);color:#2a4f7a}.chip.warn{background:var(--warn-soft);color:#8a5a12}.chip.bad{background:var(--bad-soft);color:#9b2c2c}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:600}
.badge.ok{background:var(--ok-soft);color:#276749}.badge.work{background:var(--blue-soft);color:#2a4f7a}.badge.wait{background:var(--warn-soft);color:#8a5a12}.badge.bad{background:var(--bad-soft);color:#9b2c2c}
.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink);text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.handoff{display:grid;grid-template-columns:1fr auto;gap:8px 12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.handoff:last-child{border-bottom:0}
.kv{display:grid;grid-template-columns:130px 1fr;gap:6px 10px;font-size:13.5px;margin:8px 0}.kv .k{color:var(--muted)}
.linkbox{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f8fafc;border:1px dashed #c9d5e0;border-radius:10px;padding:10px;margin:8px 0;font-size:12px;word-break:break-all}
.progress{height:8px;background:#e8eef4;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}
.note{background:var(--warn-soft);border:1px solid #f0dcb4;border-radius:10px;padding:9px 11px;font-size:12px;color:#7a5412;margin-top:8px}
.critical{border:1px solid #f3c2c2;border-left:4px solid var(--bad);background:#fffafa}
.login{max-width:380px;margin:10vh auto}.login h1{text-align:center}.login form{display:flex;flex-direction:column;gap:10px}
.auth-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#e7f3ee 0,#f4f6f8 48%)}
.auth-shell{width:100%;max-width:410px}
.auth-brand{display:flex;align-items:center;justify-content:center;gap:9px;font-weight:800;font-size:20px;letter-spacing:-.02em;color:#183243}
.auth-brand .dot{width:11px;height:11px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(31,122,92,.12)}
.auth-tagline{text-align:center;color:var(--muted);font-size:13px;margin:6px 0 22px}
.auth-card{padding:24px;margin:0}
.auth-card h1{text-align:center;margin-bottom:2px}
.auth-card .sub{text-align:center;margin-bottom:18px}
.auth-card form{display:flex;flex-direction:column;gap:12px}
.auth-foot{text-align:center;color:#94a3b0;font-size:12px;margin:18px 0 0}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;font:inherit;background:#fff}
label{display:block;font-size:12.5px;font-weight:600;margin-bottom:4px}
.feed-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:var(--blue-soft);border:1px solid #c8dbef;border-left:4px solid var(--blue);border-radius:12px;padding:11px 14px;margin-bottom:10px}
.feed-banner.stop{background:var(--bad-soft);border-color:#f0c4c4;border-left-color:var(--bad)}
.feed-title{font-weight:700;font-size:14px}
.feed-body{font-size:13px;color:#3c4c5c;white-space:pre-wrap;margin-top:2px}
.feed-item{border-bottom:1px solid var(--line);padding:12px 0}
.feed-item:last-child{border-bottom:0}
.feed-item.stop{background:#fffafa;margin:0 -8px;padding:12px 8px;border-left:4px solid var(--bad);border-radius:8px}
.news-submit-card{padding:0;overflow:hidden}
.news-submit summary{cursor:pointer;list-style:none;padding:16px 18px;font-weight:700;color:var(--accent)}
.news-submit summary::-webkit-details-marker{display:none}
.news-submit summary::before{content:"＋ ";font-size:18px}
.news-submit[open] summary{border-bottom:1px solid var(--line)}
.news-submit-card .news-submit > *:not(summary){padding:0 18px 18px}
.news-form{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px 14px;align-items:start}
.news-form-wide{grid-column:2}
.news-form label{margin-bottom:4px}
.news-form textarea{min-height:90px;resize:vertical}
.news-edit{margin-top:10px;border-top:1px solid var(--line);padding-top:9px}
.news-edit summary{cursor:pointer;color:var(--blue);font-size:12px;font-weight:700;list-style:none}
.news-edit summary::-webkit-details-marker{display:none}
.news-edit summary::before{content:"+ "}
.news-edit[open] summary::before{content:"− "}
.news-moderation{border-bottom:1px solid var(--line);padding:12px 0}
.news-moderation:last-child{border-bottom:0}
.news-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px}
.news-actions form{display:flex;gap:6px;align-items:flex-end}
.news-actions .btn{font-size:12px;padding:6px 9px;white-space:nowrap}
.news-schedule-form label{font-size:11px;margin:0 0 2px;white-space:nowrap}
.news-schedule-form input{font-size:12px;padding:6px 7px;max-width:190px}
.news-admin{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media(max-width:900px){.news-form{grid-template-columns:1fr}.news-form-wide{grid-column:auto}.news-admin{grid-template-columns:1fr}}
.summary-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.summary-pill{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:13px;box-shadow:var(--shadow)}
.summary-pill b{font-size:15px}.summary-pill.warn{background:var(--warn-soft);border-color:#f0dcb4;color:#7a5412}
.plan-layout{grid-template-columns:minmax(0,1fr) 360px}
.crew-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(390px,1fr));gap:12px}
.crew-card{padding:14px;margin:0}
.crew-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:8px}
.free-line{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:4px 0 8px}
.task-line{display:grid;grid-template-columns:54px minmax(0,1fr);gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.task-line:last-child{border-bottom:0}
.task-time{font-size:12px;font-weight:700;color:var(--blue);padding-top:2px}
.task-main{min-width:0}
.studio-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.studio-form label{font-size:12px}
.studio-form input,.studio-form select{font-size:13px}
@media(max-width:800px){.studio-form{grid-template-columns:1fr}}
.assign-details{margin-top:6px}
.assign-details summary{cursor:pointer;color:var(--blue);font-size:12px;font-weight:600;list-style:none}
.assign-details summary::-webkit-details-marker{display:none}
.assign-details summary::before{content:"+ ";font-weight:700}
.assign-details[open] summary::before{content:"− "}
.assign-form{display:flex;gap:5px;margin-top:6px;align-items:center}
.assign-form select{font-size:12px;padding:5px 7px;min-width:0}
.assign-form .btn{font-size:12px;padding:5px 8px;white-space:nowrap}
.free-person{padding:8px 0;border-bottom:1px solid var(--line)}
.free-person:last-child{border-bottom:0}
.free-person .t-title{font-size:14px}
@media(max-width:1100px){.plan-layout{grid-template-columns:1fr}.crew-grid{grid-template-columns:1fr}}
.team-filter{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px}
.dismiss-details summary{cursor:pointer;color:var(--bad);font-size:12px;font-weight:600;list-style:none}
.dismiss-details summary::-webkit-details-marker{display:none}
.dismiss-details form{display:flex;flex-direction:column;gap:4px;margin-top:5px;min-width:150px}
.dismiss-details input,.dismiss-details button{font-size:12px;padding:5px 7px}
.neuro-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.neuro-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:15px;color:var(--ink);text-decoration:none}
.neuro-card:hover{border-color:#b9c9d6;transform:translateY(-1px)}
.neuro-output{white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:600px;overflow:auto}
.guest-row{border-bottom:1px solid var(--line);padding:8px 0}
.guest-row:last-child{border-bottom:0}
.journalist-table{min-width:1080px}
.journalist-table th,.journalist-table td{padding:9px}
.journalist-task{padding:4px 0;border-bottom:1px solid var(--line)}
.journalist-task:last-child{border-bottom:0}
.journalist-table td:last-child{min-width:280px}
.schedule-table{min-width:980px}
.schedule-table th,.schedule-table td{padding:8px 9px}
.schedule-table th:first-child,.schedule-table td:first-child{position:sticky;left:0;background:var(--panel);min-width:220px}
.studio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:12px}
.studio-card{padding:16px}
.studio-session{border-top:1px solid var(--line);padding:10px 0 4px;margin-top:8px}
.studio-session:first-of-type{border-top:0}
.studio-session .t-title{font-size:15px}
@media(max-width:1000px){.studio-grid{grid-template-columns:1fr}}
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.project-card{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;color:var(--ink);text-decoration:none}
.project-card:hover{border-color:#b9c9d6;transform:translateY(-1px)}
.project-card .t-title{font-size:17px}
.task-assign{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.team-section{margin-bottom:24px}
.team-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.team-head h2{margin:0}
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.person{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}
.person-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}
.person .t-title{font-size:15px}
.phone{display:inline-block;margin:4px 0 2px;color:var(--blue);text-decoration:none;font-weight:600;font-size:13.5px}
.phone:hover{text-decoration:underline}
@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap}.nav{flex-direction:row;flex-wrap:wrap}.side-foot{display:none}.grid{grid-template-columns:1fr}}
