:root{color-scheme:light;font-family:Inter,Segoe UI,Microsoft YaHei,system-ui,sans-serif;background:#f6f7f9;color:#172033;--ink: #172033;--muted: #64748b;--line: #d9e0ea;--panel: #ffffff;--panel-strong: #f0f4f8;--blue: #2563eb;--blue-dark: #1d4ed8;--green: #15803d;--red: #dc2626;--amber: #b45309;--shadow: 0 14px 40px rgba(15, 23, 42, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,textarea,select{font:inherit}button{border:1px solid var(--line);background:#fff;color:var(--ink);min-height:38px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.button-link{min-height:38px;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 12px;text-decoration:none}.button-link:hover{border-color:#9fb2ca;background:#f8fafc}.button-link.primary{border-color:var(--blue);background:var(--blue);color:#fff}button:hover{border-color:#9fb2ca;background:#f8fafc}button:disabled{opacity:.55;cursor:not-allowed}input,textarea,select{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:10px 12px;outline:none}textarea{resize:vertical;line-height:1.55}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb21}h1,h2,h3,h4,p{margin:0}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(180deg,#f6f7f9,#e9eef5)}.auth-panel{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:26px;box-shadow:var(--shadow)}.brand-row{display:flex;align-items:center;gap:12px;margin-bottom:22px}.brand-row svg{color:var(--blue);flex:0 0 auto}.brand-row h1{font-size:28px;line-height:1.15}.brand-row p,.brand-row span{color:var(--muted);font-size:14px}.brand-row.compact{margin:0 0 18px;align-items:flex-start}.brand-row.compact strong,.brand-row.compact span{display:block}.auth-form,.compact-form{display:grid;gap:14px}.auth-form label{display:grid;gap:7px;color:var(--muted);font-size:14px}.auth-actions,.row-actions,.composer-actions,.modal-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.primary{border-color:var(--blue);background:var(--blue);color:#fff}.primary:hover{border-color:var(--blue-dark);background:var(--blue-dark)}.ghost{background:transparent}.full{width:100%}.text-link{color:var(--blue-dark);text-decoration:none;font-weight:700}.text-link:hover{text-decoration:underline}.block-id{display:block;margin-top:3px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice{margin-top:14px;color:var(--amber)}.app-shell{min-height:100vh;display:grid;grid-template-columns:236px 1fr}.admin-shell{min-height:100vh;display:grid;grid-template-columns:236px 1fr;background:#f6f7f9}.sidebar,.admin-sidebar{min-height:100vh;border-right:1px solid var(--line);background:#fff;padding:18px;display:flex;flex-direction:column;gap:16px;position:sticky;top:0}.admin-sidebar nav{display:grid;gap:6px}.admin-sidebar nav a{justify-content:flex-start;border-color:transparent;background:transparent;position:relative;color:var(--ink);min-height:38px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;text-decoration:none}.admin-sidebar nav a.router-link-active{background:#eaf1ff;color:var(--blue-dark)}.sidebar nav{display:grid;gap:6px}.sidebar nav button,.sidebar nav a{justify-content:flex-start;border-color:transparent;background:transparent;position:relative;color:var(--ink);min-height:38px;border-radius:8px;display:inline-flex;align-items:center;gap:6px;padding:0 12px;text-decoration:none}.sidebar nav button.active,.sidebar nav a.active{background:#eaf1ff;color:var(--blue-dark)}.sidebar nav b{margin-left:auto;min-width:22px;height:22px;border-radius:999px;background:var(--red);color:#fff;display:inline-grid;place-items:center;font-size:12px}.workspace,.admin-workspace{min-width:0;display:grid;grid-template-rows:auto 1fr}.topbar{min-height:72px;background:#f6f7f9e0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:14px 24px;position:sticky;top:0;z-index:5}.topbar h2{font-size:22px}.topbar p{color:var(--muted);margin-top:4px;font-size:13px}.icon-button{width:40px;padding:0}.page{padding:22px;display:grid;gap:18px;align-content:start}.two-column{grid-template-columns:minmax(0,1fr) 340px;align-items:start}.main-column,.side-panel,.panel{min-width:0}.side-panel,.panel,.composer{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.side-panel,.panel{padding:16px}.side-panel{position:sticky;top:94px;display:grid;gap:12px;max-height:calc(100vh - 112px);overflow:auto}.composer{padding:14px;display:grid;gap:10px;margin-bottom:14px}.composer textarea{min-height:110px;border:0;background:#f8fafc}.composer-actions{justify-content:space-between}.inline-check{width:fit-content;display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.inline-check input{width:18px;height:18px}.list{display:grid;gap:10px}.message-card,.mini-card,.item-row{background:#fff;border:1px solid var(--line);border-radius:8px}.message-card{padding:14px;display:grid;gap:10px;cursor:pointer}.message-card:hover,.mini-card:hover{border-color:#9fb2ca}.message-main{display:grid;grid-template-columns:1fr auto;gap:12px}.message-main p{line-height:1.6;overflow-wrap:anywhere}.message-main span,.muted,.mini-card p,.item-row span,.empty{color:var(--muted);font-size:13px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips span{min-height:26px;display:inline-flex;align-items:center;border-radius:999px;background:#eef2f7;color:#334155;padding:0 9px;font-size:12px}.chip-link{min-height:26px;display:inline-flex;align-items:center;border-radius:999px;background:#eff6ff;color:var(--blue-dark);padding:0 9px;font-size:12px;text-decoration:none}.chip-with-action{gap:6px}.chip-with-action button{width:20px;min-height:20px;border-radius:999px;padding:0;background:#ffffffb8}.chips .pending_confirmation,.chips .danger,.danger{background:#fff7ed;color:var(--amber)}.chips .converted_reminder,.chips .converted_todo{background:#ecfdf5;color:var(--green)}.mini-card{padding:12px;display:grid;gap:8px;cursor:pointer}.mini-card strong,.item-row strong{overflow-wrap:anywhere}.band{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.band>div{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;box-shadow:var(--shadow)}.band h3,.panel h3,.side-panel h3{font-size:16px;margin-bottom:10px}.band p{font-size:26px;font-weight:700}.admin-metrics p{font-size:24px;overflow-wrap:anywhere}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.item-row{display:grid;grid-template-columns:auto minmax(0,1fr) repeat(4,auto);align-items:center;gap:10px;padding:10px;margin-top:8px}.item-row>svg{color:var(--blue)}.item-row button{width:34px;min-height:34px;padding:0}.inline-form{display:grid;grid-template-columns:minmax(0,1fr) 230px auto;gap:10px}.admin-filterbar{display:grid;grid-template-columns:minmax(240px,1fr) 180px 180px auto;gap:10px;align-items:center}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:11px 8px;text-align:left;vertical-align:top}.admin-table th{color:var(--muted);font-size:12px;font-weight:700;background:#f8fafc}.admin-table tr:last-child td{border-bottom:0}.compact-table td{padding:8px}.status-pill{min-height:24px;display:inline-flex;align-items:center;border-radius:999px;background:#eef2f7;color:#334155;padding:0 9px;font-size:12px;font-weight:700}.status-pill.active{background:#ecfdf5;color:var(--green)}.status-pill.disabled,.status-pill.deleted{background:#fff1f2;color:var(--red)}.status-pill.archived{background:#fff7ed;color:var(--amber)}.admin-alert-list,.admin-action-grid{display:grid;gap:10px}.admin-alert-list article{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#f8fafc}.admin-alert-list strong{font-size:20px}.admin-dl{display:grid;grid-template-columns:140px minmax(0,1fr);gap:10px 14px;margin:0}.admin-dl dt{color:var(--muted);font-size:13px}.admin-dl dd{margin:0;min-width:0;overflow-wrap:anywhere}.detail-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.empty-admin{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center}.empty-admin svg{color:var(--amber)}.admin-role-form{margin-top:12px;grid-template-columns:minmax(0,1fr) auto}.admin-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.todo-form{margin-top:12px}.toolbar{display:inline-flex;width:fit-content;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.toolbar button{border:0;border-radius:0}.toolbar button.active{background:#eaf1ff;color:var(--blue-dark)}.schedule-toolbar{align-items:center;gap:0}.schedule-toolbar input{width:150px;border:0;border-left:1px solid var(--line);border-radius:0;min-height:38px}.schedule-row{grid-template-columns:auto minmax(0,1fr) repeat(4,auto)}.section-title,.topbar-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-title{color:var(--muted);font-size:12px;font-weight:700;margin:12px 0 6px}.icon-button.small{width:28px;min-height:28px}.channel-section{display:grid;gap:6px;margin-bottom:12px}.channel-button{width:100%;justify-content:flex-start;border-color:transparent;background:transparent}.channel-button.active{background:#eaf1ff;color:var(--blue-dark)}.channel-button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-button b{margin-left:auto;min-width:22px;min-height:22px;display:inline-grid;place-items:center;border-radius:999px;background:var(--blue);color:#fff;font-size:12px}.button-like{min-height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--line);display:inline-flex;align-items:center;gap:8px;cursor:pointer}.button-like input{display:none}.attachment-list{display:flex;flex-wrap:wrap;gap:8px}.attachment-chip{min-height:34px;max-width:100%;display:inline-flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong)}.attachment-chip img{width:28px;height:28px;object-fit:cover;border-radius:6px}.attachment-chip span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip button{width:26px;min-height:26px;padding:0}.channel-modal{width:min(720px,100%)}.review-panel{display:grid;gap:12px}.review-summary{font-size:18px;line-height:1.55}.searchbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px;box-shadow:var(--shadow);margin-bottom:14px}.compact-form{grid-template-columns:minmax(0,1fr) auto;margin-bottom:10px}.project-detail{border-top:1px solid var(--line);margin-top:6px;padding-top:14px;display:grid;gap:10px}.project-detail p{color:var(--muted);line-height:1.5}.project-detail-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.project-edit-form{display:grid;gap:10px}.project-edit-form label{display:grid;gap:6px;color:var(--muted);font-size:13px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-grid>div{background:var(--panel-strong);border-radius:8px;padding:14px;display:grid;gap:10px}.danger-zone{border-color:#fecaca}.danger-button{border-color:#fecaca;background:#fff1f2;color:var(--red)}.danger-button:hover{border-color:#fca5a5;background:#ffe4e6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0f172a6b;display:grid;place-items:center;padding:18px}.modal{width:min(860px,100%);max-height:min(880px,calc(100vh - 36px));overflow:auto;background:#fff;border-radius:8px;border:1px solid var(--line);box-shadow:0 24px 70px #0f172a47}.modal header,.modal footer{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line)}.modal footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-start;flex-wrap:wrap}.detail-body{padding:16px;display:grid;gap:16px}.detail-body section{display:grid;gap:8px}.detail-body h4{font-size:14px;color:var(--muted)}.original{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:12px;line-height:1.65;overflow-wrap:anywhere}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-grid label{display:grid;gap:6px;color:var(--muted);font-size:13px}.detail-grid .wide{grid-column:1 / -1}ul{margin:0;padding-left:18px;color:var(--muted);line-height:1.7}.empty-state{border:1px dashed var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);display:flex;align-items:center;gap:10px;padding:14px}.empty-state svg{color:#8aa0bb;flex:0 0 auto}.empty-state strong{color:var(--ink);display:block;margin-bottom:2px}.empty-state p{color:var(--muted);font-size:13px}.toast-stack{position:fixed;top:16px;right:16px;z-index:40;display:grid;gap:8px;width:min(360px,calc(100vw - 32px))}.toast{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 10px 10px 12px}.toast.success{border-color:#bbf7d0;color:var(--green)}.toast.error{border-color:#fecaca;color:var(--red)}.toast.info{border-color:#bfdbfe;color:var(--blue-dark)}.toast-close{width:26px;min-height:26px;padding:0}@media(max-width:980px){.app-shell,.admin-shell{grid-template-columns:1fr}.sidebar,.admin-sidebar{min-height:auto;position:static;border-right:0;border-bottom:1px solid var(--line)}.sidebar nav{grid-template-columns:repeat(6,minmax(0,1fr))}.admin-sidebar nav{grid-template-columns:repeat(5,minmax(0,1fr))}.sidebar nav button,.sidebar nav a,.admin-sidebar nav a{justify-content:center}.sidebar nav button span,.sidebar nav a span,.admin-sidebar nav a span{display:none}.two-column,.grid-2,.settings-grid,.band,.inline-form,.admin-filterbar{grid-template-columns:1fr}.side-panel{position:static;max-height:none}}@media(max-width:560px){.page,.topbar,.sidebar,.admin-sidebar{padding:12px}.message-main{grid-template-columns:1fr}.item-row{grid-template-columns:auto minmax(0,1fr)}.item-row button{width:auto;padding:0 10px}.searchbar,.compact-form,.detail-grid,.admin-dl,.empty-admin,.detail-head{grid-template-columns:1fr}.detail-head{align-items:stretch}.admin-toggle-row{align-items:stretch;flex-direction:column}.admin-table{display:block;overflow-x:auto;white-space:nowrap}.modal-actions button{flex:1 1 46%}}
