:root{--bg: #000000;--elev: #1c1c1e;--elev2: #2c2c2e;--hair: rgba(255,255,255,.1);--text: #f5f5f7;--muted: #98989f;--muted2: #6e6e73;--accent: #0a84ff;--accent2: #409cff;--danger: #ff453a;--ok: #30d158;--radius: 16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;letter-spacing:.01em}button{font-family:inherit;cursor:pointer}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.topbar{display:flex;justify-content:space-between;align-items:center;padding:max(env(safe-area-inset-top),16px) 18px 10px;position:sticky;top:0;z-index:10;background:#0009;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}.brand{font-size:20px;font-weight:700;letter-spacing:-.02em}.topbar-actions{display:flex;gap:16px;align-items:center}.link{background:none;border:none;color:var(--accent);font-size:15px;padding:2px}.subbar{display:flex;align-items:center;gap:10px;margin:8px 18px 4px}.subbar .segmented{flex:1;margin:0}.add-btn{flex:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--hair);background:var(--elev2);color:var(--accent);font-size:24px;line-height:1;font-weight:300}.segmented{display:flex;gap:2px;padding:2px;background:var(--elev2);border-radius:10px}.segmented button{flex:1;border:none;background:transparent;color:var(--muted);font-size:15px;font-weight:600;padding:7px 0;border-radius:8px;transition:.15s}.segmented button.on{background:#48484a;color:#fff;box-shadow:0 1px 2px #0006}.home-tools{display:flex;gap:10px;margin:6px 18px 2px}.tool{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--hair);background:var(--elev);color:var(--text);border-radius:10px;padding:9px 0;font-size:14px;font-weight:600}.tool.feishu{background:#0a84ff24;border-color:#0a84ff66;color:var(--accent2)}.tool:disabled{opacity:.6}.spin{display:inline-block;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error{margin:8px 16px;padding:11px 14px;background:#ff453a26;color:#ff9f99;border:1px solid rgba(255,69,58,.3);border-radius:12px;font-size:14px}.toast{position:fixed;left:50%;transform:translate(-50%);top:max(env(safe-area-inset-top),16px);z-index:60;max-width:88%;background:#30d15829;color:#7ee29a;border:1px solid rgba(48,209,88,.35);padding:11px 16px;border-radius:14px;font-size:14px;text-align:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 8px 30px #00000080}main{flex:1;overflow-y:auto;padding:4px 14px 12px}.empty{text-align:center;color:var(--muted);margin-top:28%;line-height:1.9;font-size:15px}.empty-sm{color:var(--muted2);font-size:14px;padding:10px 4px}.group-label{color:var(--muted);font-size:13px;margin:18px 6px 8px;font-weight:600;letter-spacing:.02em}.card{display:flex;align-items:flex-start;gap:12px;background:var(--elev);border-radius:var(--radius);padding:15px;margin-bottom:10px;border:1px solid var(--hair)}.card.done{opacity:.45}.card.done .card-title{text-decoration:line-through}.check{background:none;border:none;color:var(--accent);font-size:22px;line-height:1;padding:0;margin-top:1px}.card-body{flex:1;min-width:0}.card-title{font-size:16px;font-weight:600;margin-bottom:4px;letter-spacing:-.01em}.card-time{color:var(--accent2);font-size:14px}.card-meta{color:var(--muted);font-size:13px;margin-top:6px;display:flex;gap:12px;flex-wrap:wrap}.del{background:none;border:none;color:var(--muted2);font-size:16px;padding:0 2px}.mic-area{display:flex;flex-direction:column;align-items:center;padding:10px 0 calc(env(safe-area-inset-bottom) + 16px);background:linear-gradient(to top,var(--bg) 60%,transparent)}.mic{width:76px;height:76px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:30px;box-shadow:0 6px 22px #0a84ff80;transition:transform .1s;touch-action:none;-webkit-user-select:none;user-select:none}.mic.on{transform:scale(1.12);box-shadow:0 0 0 8px #0a84ff38,0 6px 22px #0a84ff99}.mic.busy{background:#3a3a3c;box-shadow:none}.mic:disabled{opacity:.85}.mic.hint{animation:micpulse 1.2s ease-in-out infinite}@keyframes micpulse{0%,to{box-shadow:0 0 #0a84ff80,0 6px 22px #0a84ff80}50%{box-shadow:0 0 0 14px #0a84ff00,0 6px 22px #0a84ff80}}.mic-label{margin-top:10px;color:var(--muted);font-size:14px}.sheet-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:flex-end;z-index:50;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.sheet{width:100%;max-height:88vh;overflow-y:auto;background:#141416;border:1px solid var(--hair);border-bottom:none;border-radius:22px 22px 0 0;padding:8px 18px calc(env(safe-area-inset-bottom) + 18px)}.sheet-grip{width:38px;height:5px;border-radius:3px;background:#48484a;margin:8px auto 6px}.sheet h2{margin:4px 0 12px;font-size:19px;letter-spacing:-.02em}.raw{color:var(--muted);font-size:14px;margin:0 0 12px}.entry{background:var(--elev);border:1px solid var(--hair);border-radius:14px;padding:12px 14px;margin-bottom:12px}.entry.need{border-color:#ff9f0a80}.entry label{display:block;color:var(--muted);font-size:12px;margin:12px 0 5px}.entry label:first-child{margin-top:2px}.entry input{width:100%;background:var(--elev2);border:1px solid transparent;color:var(--text);border-radius:10px;padding:11px 12px;font-size:16px}.entry input:focus{outline:none;border-color:var(--accent)}.warn{color:#ffd60a}.meta{display:flex;gap:12px;color:var(--muted);font-size:13px;margin-top:8px}.edit-voice{display:flex;align-items:center;gap:12px;margin:4px 2px 14px}.mic-mini{width:48px;height:48px;border-radius:50%;border:none;flex:none;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:20px;touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:0 4px 14px #0a84ff73}.mic-mini.on{transform:scale(1.1)}.mic-mini:disabled{opacity:.6}.sheet-actions{display:flex;gap:10px;margin-top:8px}button.primary{flex:1;background:var(--accent);color:#fff;border:none;border-radius:14px;padding:14px;font-size:16px;font-weight:600}button.primary:active{background:#0070e0}button.ghost{background:var(--elev2);color:var(--text);border:none;border-radius:14px;padding:14px 20px;font-size:16px}button:disabled{opacity:.55}.gate{display:flex;flex-direction:column;gap:16px;padding:24px;max-width:420px;margin:20vh auto 0}.gate h1{font-size:28px;letter-spacing:-.03em;margin:0}.gate p{color:var(--muted);font-size:15px;margin:0}.gate input{background:var(--elev);border:1px solid var(--hair);color:var(--text);border-radius:12px;padding:15px;font-size:16px}.gate input:focus{outline:none;border-color:var(--accent)}.page{display:flex;flex-direction:column;height:100vh;height:100dvh}.page .topbar{font-weight:600}.page-body{flex:1;overflow-y:auto;padding:14px 16px calc(env(safe-area-inset-bottom) + 28px)}.page-body>.primary{width:100%;margin-top:4px}.ok-banner{margin:8px 0;padding:11px 14px;background:#30d15829;color:#7ee29a;border-radius:12px;font-size:14px}.hint{color:var(--muted);font-size:13px;line-height:1.75}.hint code,code.url{background:var(--elev2);padding:2px 7px;border-radius:6px;word-break:break-all}code.url{display:inline-block;color:var(--accent2);font-size:13px}.form-card{background:var(--elev);border:1px solid var(--hair);border-radius:var(--radius);padding:16px;margin-bottom:14px}.form-card h3{margin:0 0 6px;font-size:17px;letter-spacing:-.01em}.form-card label{display:block;color:var(--muted);font-size:13px;margin:14px 0 6px}.form-card input{width:100%;background:var(--elev2);border:1px solid transparent;color:var(--text);border-radius:10px;padding:12px;font-size:16px}.form-card input:focus{outline:none;border-color:var(--accent)}.key-row{display:flex;gap:8px;align-items:center}.key-row input{flex:1}.copy-row{display:flex;gap:8px;align-items:center;margin:8px 0}.copy-row .url{flex:1}.chip{border:1px solid var(--hair);background:var(--elev2);color:var(--text);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;white-space:nowrap}.guide-tabs{display:flex;gap:2px;margin:8px 16px 0;padding:2px;background:var(--elev2);border-radius:10px;position:sticky;top:0;z-index:5}.guide-tabs button{flex:1;border:none;background:transparent;color:var(--muted);font-size:13px;font-weight:600;padding:8px 0;border-radius:8px;transition:.15s;white-space:nowrap}.guide-tabs button.on{background:#48484a;color:#fff;box-shadow:0 1px 2px #0006}.guide-card{background:var(--elev);border:1px solid var(--hair);border-radius:var(--radius);padding:16px;margin-bottom:14px}.guide-card.hl{border-color:#0a84ff66;background:linear-gradient(180deg,rgba(10,132,255,.08),var(--elev))}.guide-card h3{margin:0 0 10px;font-size:17px;letter-spacing:-.01em}.guide-card p{margin:8px 0;font-size:14px;line-height:1.75}.guide-card ol,.guide-card ul{margin:8px 0;padding-left:20px}.guide-card li{font-size:14px;line-height:1.85}.guide-card .step-title{font-weight:700;color:var(--accent2);margin-top:14px}.import-btn{display:block;text-align:center;text-decoration:none;margin:10px 0 4px}.cal{padding-bottom:4px}.cal-head{display:flex;align-items:center;justify-content:space-between;padding:4px 6px 6px}.cal-head .link{font-size:24px;padding:0 10px}.cal-title{font-size:18px;font-weight:700;letter-spacing:-.02em}.cal-chips{display:flex;align-items:center;gap:8px;padding:0 4px 10px}.cal-legend{margin-left:auto;color:var(--muted);font-size:12px;display:inline-flex;align-items:center;gap:5px}.dot,.cal-legend .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.cal-week{margin-bottom:4px}.cal-wd{text-align:center;color:var(--muted2);font-size:12px;padding:4px 0}.cal-cell{position:relative;min-width:0;height:52px;border:1px solid transparent;background:var(--elev);border-radius:12px;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:15px;padding:0}.cal-cell.empty{background:transparent;pointer-events:none}.cal-cell.free{background:#161618;color:var(--muted)}.cal-cell.busy{background:var(--elev)}.cal-cell.thisweek{box-shadow:inset 0 0 0 1px #ffffff14}.cal-cell.today{color:var(--accent);font-weight:700}.cal-cell.sel{border-color:var(--accent);background:#0a84ff29}.cal-cell{gap:3px}.cal-day{line-height:1}.cal-count{min-width:16px;height:15px;padding:0 4px;border-radius:8px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.cal-detail{margin-top:14px}.slot{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:var(--elev);border:1px solid var(--hair);border-radius:12px;padding:12px 14px;margin-bottom:8px;color:var(--text)}.slot.done{opacity:.45}.slot-time{color:var(--accent2);font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;min-width:44px}.slot-title{flex:1;font-size:15px;font-weight:600}.slot-loc{color:var(--muted);font-size:12px}
