:root{--bg: #eaf4fb;--bg2: #f4fafe;--panel: #ffffff;--panel2: #e3f1fa;--line: #cfe4f2;--text: #0f2c43;--muted: #5b7e98;--accent: #38bdf8;--accent2: #0ea5e9;--green: #22c55e;--amber: #f59e0b;--radius: 14px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:radial-gradient(1200px 600px at 20% -10%,#d6ecfa 0%,var(--bg) 55%);color:var(--text)}a{color:var(--accent2);text-decoration:none}a:hover{text-decoration:underline}.center-screen{display:grid;place-items:center;height:100vh;color:var(--muted)}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:100%;max-width:400px;background:linear-gradient(180deg,#fff,#f3faff);border:1px solid var(--line);border-radius:18px;padding:32px 28px;box-shadow:0 30px 70px #3882b42e;display:flex;flex-direction:column}.auth-logo{width:56px;height:56px;border-radius:16px;background:#38bdf826;border:1px solid rgba(56,189,248,.4);display:grid;place-items:center;font-size:28px;margin-bottom:18px}.brand-img{width:auto;max-width:100%;object-fit:contain;display:block}.brand-logo{display:inline-flex;align-items:baseline;line-height:1;color:#0e1722;font-family:Helvetica Neue,Arial,system-ui,sans-serif;font-weight:200;letter-spacing:.2em}.brand-logo .bl-word{padding-left:.2em}.brand-logo .bl-i{color:#1fc0e6}.auth-brand{margin-bottom:20px}.auth-card h1{margin:0;font-size:24px}.auth-sub{margin:6px 0 20px;color:var(--muted);font-size:14px}.auth-card label{font-size:12.5px;color:var(--muted);margin:12px 0 6px;font-weight:600}.auth-card input{background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:11px 13px;border-radius:10px;font-size:14px;outline:none}.auth-card input:focus{border-color:var(--accent2)}.auth-btn{margin-top:22px;padding:12px;border:none;border-radius:10px;cursor:pointer;background:linear-gradient(180deg,var(--accent),var(--accent2));color:#fff;font-size:15px;font-weight:700}.auth-btn:disabled{opacity:.6;cursor:default}.auth-foot{margin:18px 0 0;text-align:center;color:var(--muted);font-size:13px}.auth-error{background:#fdeaea;color:#c0392b;border:1px solid #f5c2c2;padding:10px 12px;border-radius:10px;font-size:13px;margin-bottom:6px}.dash{min-height:100vh}.dash-top{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--line);background:#ffffffb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px}.brand-mark{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#38bdf826;border:1px solid rgba(56,189,248,.4)}.dash-user{display:flex;align-items:center;gap:14px}.user-chip{display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 12px 4px 4px;cursor:pointer;transition:border-color .12s,box-shadow .12s}.user-chip:hover{border-color:var(--accent2);box-shadow:0 4px 14px #3882b42e}.chip-caret{color:var(--muted);font-size:11px}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:13px;font-weight:800}.hello{color:var(--text);font-size:13.5px;font-weight:600}.logout{background:transparent;border:1px solid var(--line);color:var(--text);padding:8px 14px;border-radius:9px;cursor:pointer;font-size:13px;font-weight:600}.logout:hover{background:var(--panel2)}.dash-main{max-width:1060px;margin:0 auto;padding:36px 28px 56px}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;background:linear-gradient(135deg,#fff,#eaf6ff);border:1px solid var(--line);border-radius:20px;padding:28px 30px;margin-bottom:30px;box-shadow:0 14px 40px #3882b41a}.hero-eyebrow{color:var(--accent2);font-size:12.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.dash-title{margin:8px 0 4px;font-size:28px;letter-spacing:-.3px}.dash-subtitle{margin:0;color:var(--muted);font-size:14.5px}.clock{display:flex;align-items:center;gap:16px;background:#ffffffb8;border:1px solid var(--line);border-radius:16px;padding:14px 20px 14px 16px;box-shadow:0 8px 22px #3882b41a}.clock-face{width:82px;height:82px;flex-shrink:0}.cf-ring{fill:none;stroke:var(--accent);stroke-width:2.5;opacity:.55}.cf-bg{fill:#fff}.cf-tick{stroke:var(--muted);stroke-width:1;opacity:.5}.cf-tick.major{stroke:var(--accent2);stroke-width:2;opacity:.8}.cf-hour{stroke:var(--text);stroke-width:4;stroke-linecap:round}.cf-min{stroke:var(--accent2);stroke-width:3;stroke-linecap:round}.cf-sec{stroke:#ec4899;stroke-width:1.4;stroke-linecap:round}.cf-cap{fill:var(--accent2)}.clock-digital{display:flex;flex-direction:column;gap:4px}.cd-time{font-size:26px;font-weight:800;letter-spacing:.5px;line-height:1;color:var(--text);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:1px}.cd-colon{color:var(--accent2);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:.25}}.cd-ampm{font-size:12px;font-weight:700;color:var(--accent2);margin-left:7px}.cd-date{font-size:12.5px;color:var(--muted);font-weight:600}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.feature-card{--fc-accent: var(--accent2);text-align:left;cursor:pointer;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:16px;min-height:200px;color:var(--text);position:relative;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.feature-card:before{content:"";position:absolute;left:0;top:0;height:4px;width:100%;background:var(--fc-accent);opacity:.85}.fc-glow{position:absolute;top:-50px;right:-40px;width:150px;height:150px;border-radius:50%;background:var(--fc-accent);opacity:.1;filter:blur(12px);transition:opacity .15s ease}.feature-card:hover:not(:disabled){transform:translateY(-4px);border-color:var(--fc-accent);box-shadow:0 22px 48px #3882b438}.feature-card:hover:not(:disabled) .fc-glow{opacity:.22}.feature-card:hover:not(:disabled) .fc-arrow{transform:translate(4px)}.feature-card:disabled{cursor:default}.fc-soft,.feature-card.fc-soon{opacity:.85}.fc-head{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.fc-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;color:var(--fc-accent);background:color-mix(in srgb,var(--fc-accent) 13%,#ffffff);border:1px solid color-mix(in srgb,var(--fc-accent) 30%,#ffffff)}.fc-icon svg{width:28px;height:28px}.fc-tag{font-size:11px;font-weight:700;padding:4px 11px;border-radius:999px;background:color-mix(in srgb,var(--fc-accent) 14%,#ffffff);color:var(--fc-accent)}.fc-tag-soon{background:#5b7e9826;color:#475569}.fc-body{position:relative;z-index:1;flex:1}.fc-body h3{margin:0 0 7px;font-size:17.5px;letter-spacing:-.2px}.fc-body p{margin:0;color:var(--muted);font-size:13.5px;line-height:1.55}.fc-foot{position:relative;z-index:1}.fc-cta{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:var(--fc-accent)}.fc-cta.muted{color:var(--muted)}.fc-arrow{transition:transform .15s ease;font-weight:800}.sec-title{margin:0 0 14px;font-size:15px;font-weight:700;color:var(--text);letter-spacing:-.2px}.overview{margin-top:34px}.ov-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.ov-stat{--ov-accent: var(--accent2);background:#fff;border:1px solid var(--line);border-left:4px solid var(--ov-accent);border-radius:14px;padding:16px 18px;transition:transform .12s,box-shadow .12s}.ov-stat:hover{transform:translateY(-2px);box-shadow:0 12px 28px #3882b424}.ov-stat b{display:block;font-size:26px;line-height:1;color:var(--ov-accent)}.ov-stat span{font-size:12.5px;color:var(--muted)}.panels{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;margin-top:34px}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}.panel-empty{margin:0;color:var(--muted);font-size:13.5px}.feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.feed li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.feed li:last-child{border-bottom:none}.feed-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:var(--panel2);border:1px solid var(--line);font-size:15px}.feed-msg{flex:1;font-size:13.5px;color:var(--text)}.feed-time{font-size:11.5px;color:var(--muted);white-space:nowrap}.tips{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.tips li{display:flex;align-items:flex-start;gap:11px;font-size:13.5px;color:var(--text);line-height:1.45}.tip-icon{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;background:#38bdf821;border:1px solid rgba(56,189,248,.3);font-size:13px}.dash-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:12.5px}@media (max-width: 720px){.panels{grid-template-columns:1fr}}.asap-add{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px 28px;background:var(--panel2);border-bottom:1px solid var(--line)}.asap-add input[type=text],.asap-add>input{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:9px 12px;border-radius:8px;font-size:13.5px;min-width:180px}.asap-date{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);font-weight:600}.asap-date input{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:8px;font-size:13px}.asap-sec{padding:22px 28px 6px}.asap-h{display:flex;align-items:center;gap:10px;margin:0 0 4px;font-size:16px}.asap-count{background:var(--panel2);border:1px solid var(--line);color:var(--accent2);border-radius:999px;padding:2px 11px;font-size:12.5px;font-weight:700}.asap-note{margin:0 0 14px;color:var(--muted);font-size:13px}.asap-table{min-width:1280px}.asap-table th.day-col,.asap-table td.day-col{text-align:center;min-width:120px;width:120px}.asap-table td.day-col input{width:100%;min-width:0;text-align:center;padding:5px 4px}.asap-table td.day-col input.day-num{font-weight:700}.asap-table td.day-col input.day-rem{margin-top:4px;font-size:11.5px;text-align:left}.asap-table td.day-col input:disabled{background:var(--panel2);color:var(--muted);cursor:not-allowed}.day-rem-text{margin-top:3px;font-size:11px;color:var(--muted);line-height:1.3}.row-x{background:transparent;border:1px solid var(--line);color:#c0392b;width:26px;height:26px;border-radius:7px;cursor:pointer;font-size:12px;line-height:1}.row-x:hover{background:#fdeaea}.btn.xs{padding:5px 10px;font-size:12px;border-radius:7px;white-space:nowrap}.asap-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}.asap-export-all{margin-left:auto}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;cursor:pointer;background:radial-gradient(1200px 720px at 50% 42%,#fff,#eaf6fd 60%,#d7edfa);transition:opacity .55s ease,transform .55s ease}.splash.hide{opacity:0;transform:scale(1.045);pointer-events:none}.splash-glow{position:absolute;width:540px;height:540px;border-radius:50%;background:radial-gradient(circle,#2dd4ee33,#2dd4ee00 62%);filter:blur(18px);animation:splashPulse 3s ease-in-out infinite}.splash-inner{position:relative;text-align:center;padding:0 24px}.splash-logo-wrap{position:relative;display:inline-block;overflow:hidden;opacity:0;transform:translateY(16px) scale(.94);filter:blur(8px);animation:splashLogoIn 1s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:.15s}.splash-logo{display:block;width:clamp(260px,60vw,560px);height:auto;filter:drop-shadow(0 12px 30px rgba(45,130,180,.18))}@keyframes splashLogoIn{to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}.splash-shine{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;transform:translate(-130%);background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.85) 50%,transparent 62%);animation:splashShine 1.15s ease forwards;animation-delay:1s}@keyframes splashShine{to{transform:translate(130%)}}.splash-rule{display:block;height:2px;width:0;max-width:440px;margin:26px auto 0;background:linear-gradient(90deg,transparent,#1fc0e6,transparent);animation:splashRule .8s ease forwards;animation-delay:1.1s}@keyframes splashRule{to{width:100%}}.splash-skip{position:absolute;bottom:28px;left:0;right:0;text-align:center;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:#8aa6ba;opacity:0;animation:splashTag .6s ease forwards;animation-delay:2.1s}@keyframes splashPulse{0%,to{transform:scale(.94);opacity:.7}50%{transform:scale(1.06);opacity:1}}@media (prefers-reduced-motion: reduce){.splash-logo-wrap,.splash-shine,.splash-rule,.splash-skip,.splash-glow{animation:none;opacity:1;transform:none;filter:none}.splash-rule{width:100%}}.page{min-height:100vh}.page-top{display:flex;align-items:center;gap:16px;padding:16px 28px;border-bottom:1px solid var(--line)}.page-top h2{margin:0;font-size:18px}.back{font-size:14px}.page-body{max-width:900px;margin:0 auto;padding:40px 28px}.placeholder-box{background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius);padding:28px;text-align:center}.placeholder-box h3{margin:0 0 10px}.placeholder-box p{color:var(--muted);line-height:1.6}.placeholder-box code{background:#e3f1fa;padding:2px 6px;border-radius:6px;color:#0369a1}.ms-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 28px;background:var(--panel2);border-bottom:1px solid var(--line)}.btn{background:var(--accent2);color:#fff;border:none;padding:9px 15px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn:hover{background:var(--accent)}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--text)}.btn.ghost:hover{background:var(--panel2)}.btn.green{background:var(--green)}.ms-stat{display:flex;gap:12px;flex-wrap:wrap;margin-left:auto}.ms-stat span{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:12px;color:var(--muted)}.ms-stat b{color:var(--text);font-size:14px}.ms-msg{padding:10px 28px;font-size:13px}.ms-msg.ok{background:#e7f8ee;color:#15803d}.ms-msg.warn{background:#fdf3da;color:#b45309}.ms-search{display:flex;gap:10px;flex-wrap:wrap;padding:10px 28px;background:var(--panel2);border-bottom:1px solid var(--line)}.ms-search input,.ms-search select{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:7px;font-size:13px}.ms-search input{flex:1;min-width:200px}.ms-wrap{overflow:auto;max-height:calc(100vh - 230px);padding:0 12px}.ms-table{border-collapse:collapse;width:100%;font-size:12.5px;min-width:1500px}.ms-table th,.ms-table td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}.ms-table th{background:#dbeefb;position:sticky;top:0;z-index:5;font-size:11px;text-transform:uppercase;color:var(--muted);white-space:nowrap}.ms-table tr:nth-child(2n) td{background:#f4fafe}.ms-table tr.closed td:first-child{box-shadow:inset 4px 0 0 var(--green)}.ms-table tr.closed td.closer{background:#e7f8ee;color:#15803d;font-weight:600}.ms-table td.remark{min-width:200px}.ms-table td.edit{background:#eef7fd}.ms-table td.edit select,.ms-table td.edit input{background:var(--panel);border:1px solid var(--line);color:var(--text);padding:5px 7px;border-radius:6px;font-size:12px;width:100%;min-width:110px}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap}.pill.l1{background:#fdf3da;color:#b45309}.pill.l2{background:#fdeaea;color:#c0392b}.ms-table td.photo{min-width:130px}.thumb{width:46px;height:46px;object-fit:cover;border-radius:6px;border:1px solid var(--line);cursor:pointer;display:block;margin-bottom:4px}.photo-link{font-size:11px;color:#0284c7;cursor:pointer;text-decoration:underline}.ms-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f2c4399;display:flex;align-items:center;justify-content:center;z-index:100}.ms-modal img{max-width:90vw;max-height:90vh;border-radius:10px}.cmodal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f2c4359;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;z-index:200}.cmodal.show{display:flex}.cmodal .box{background:linear-gradient(180deg,#fff,#f3faff);border:1px solid var(--line);border-radius:18px;max-width:440px;width:90%;padding:26px;box-shadow:0 30px 70px #3882b440}.cm-icon{width:52px;height:52px;border-radius:14px;background:#22c55e24;border:1px solid rgba(34,197,94,.35);display:grid;place-items:center;font-size:26px;margin-bottom:16px}.cmodal h3{margin:0 0 12px;font-size:18px}.cm-body{color:var(--muted);font-size:14px;line-height:1.6}.cm-body b{color:var(--text)}.cm-body .big{color:var(--green);font-weight:800;font-size:18px}.cm-acts{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}.cm-acts button{padding:10px 20px;border-radius:10px;font-size:13.5px;font-weight:700;cursor:pointer;border:none}.cm-acts .cc{background:#fff;border:1px solid var(--line);color:var(--muted)}.cm-acts .co{background:linear-gradient(180deg,#22c55e,#16a34a);color:#fff}.profile-box{position:relative;max-width:420px}.pm-close{position:absolute;top:16px;right:16px;width:30px;height:30px;border-radius:8px;background:transparent;border:1px solid var(--line);color:var(--muted);cursor:pointer;font-size:13px;line-height:1}.pm-close:hover{background:var(--panel2);color:var(--text)}.pm-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.pm-avatar{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:24px;font-weight:800;flex-shrink:0}.pm-name{margin:0;font-size:19px}.pm-email{color:var(--muted);font-size:13px}.pm-rows{display:flex;flex-direction:column;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.pm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--bg2);padding:11px 14px}.pm-row span{color:var(--muted);font-size:12.5px}.pm-row b{color:var(--text);font-size:13.5px;text-align:right;word-break:break-word}.pm-acts{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.pm-form{margin-top:18px;display:flex;flex-direction:column}.pm-form-title{margin:0 0 6px;font-size:15px}.pm-form label{font-size:12px;color:var(--muted);margin:11px 0 5px;font-weight:600}.pm-form input{background:var(--bg2);border:1px solid var(--line);color:var(--text);padding:10px 12px;border-radius:9px;font-size:14px;outline:none}.pm-form input:focus{border-color:var(--accent2)}
