[hidden],body.is-authenticated #authPanel,body.is-guest #appShell{display:none!important}:root{--bg:#f4f5f7;--panel:#ffffff;--text:#111827;--muted:#6b7280;--border:#e5e7eb;--brand:#1f2937;--primary:#2563eb;--danger:#dc2626;--weekend:#fff8f1;--weekend-strong:#fde68a;--shadow:0 1px 2px rgba(15,23,42,.05);--radius:8px;--radius-sm:6px;--topbar-h:0px}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{border:none;border-radius:var(--radius-sm);padding:9px 12px;cursor:pointer;background:#e5e7eb;color:#111827;font-weight:600}button:hover{filter:brightness(.97)}button:disabled{opacity:.55;cursor:default}.topbar{position:sticky;top:0;z-index:40;background:var(--brand);color:#fff;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.06);box-shadow:0 1px #0f172a14}.brand-title{font-size:18px;font-weight:700;line-height:1.15}.brand-subtitle{font-size:12px;color:#d1d5db;margin-top:2px;font-weight:400}.topbar-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.topbar-actions>button{background:var(--primary);color:#fff;font-weight:600}.topbar-actions>.notebook-open-btn{background:#f59e0b;color:#422006}.topbar-logout{background:#374151!important}.topbar-more{position:relative}.topbar-more>summary{list-style:none;cursor:pointer;border-radius:var(--radius-sm);padding:9px 12px;background:#374151;color:#fff;font-weight:600}.topbar-more>summary::-webkit-details-marker{display:none}.topbar-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:50;min-width:220px;display:flex;flex-direction:column;gap:4px;padding:8px;background:#1f2937;border:1px solid #374151;border-radius:var(--radius);box-shadow:0 8px 20px #00000038}.topbar-more-menu button{width:100%;text-align:left;background:#2563eb;font-weight:600}.topbar-more-menu .topbar-logout,.topbar-more-menu #clearLocalDataBtn{background:#4b5563}.topbar-more-menu .topbar-logout{background:#374151!important}.container{max-width:1720px;margin:0 auto;padding:14px 16px 20px}.month-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}#monthTitle{margin:0;font-size:24px;font-weight:700;text-transform:capitalize;letter-spacing:-.01em}.loading-bar{display:none;margin-top:4px;color:#374151;font-size:13px;font-weight:600}.report-result{min-height:28px;display:flex;align-items:center;justify-content:flex-end;text-align:right;font-size:13px}.report-result a{color:var(--primary);font-weight:700;text-decoration:none}.inline-action-btn{margin-left:8px;padding:6px 10px;font-size:12px}.report-result-info{color:var(--text);line-height:1.5}.report-result-error{color:#b91c1c;font-weight:700;white-space:pre-wrap}.summary-panel{margin-bottom:10px}.summary-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}.strip-card{background:var(--panel);border-radius:var(--radius);padding:8px 12px;box-shadow:var(--shadow);border:1px solid var(--border)}.strip-card b{display:block;font-size:11px;font-weight:600;color:#6b7280;margin-bottom:3px}.strip-card span{display:block;font-size:17px;font-weight:700;line-height:1.15}.strip-card-strong{border:1px solid #bfdbfe;background:#f8fbff}.strip-card-course{border-color:#e9d5ff;background:#faf8ff}.strip-card-course b{color:#6b21a8}.strip-card-course span{color:#7e22ce}.ui-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.ui-panel-toggle{list-style:none;cursor:pointer;padding:9px 12px;font-size:13px;font-weight:600;color:#374151;background:#fafbfc;border-bottom:1px solid transparent;-webkit-user-select:none;user-select:none}.ui-panel-toggle::-webkit-details-marker{display:none}.ui-panel[open]>.ui-panel-toggle{border-bottom-color:var(--border)}.ui-panel-toggle:before{content:"▸";display:inline-block;margin-right:8px;transition:transform .15s ease;color:#64748b}.ui-panel[open]>.ui-panel-toggle:before{transform:rotate(90deg)}.ui-panel-body{padding:8px 10px 10px}.ui-subpanel{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px;overflow:hidden;background:#fff}.ui-subpanel:last-child{margin-bottom:0}.ui-subpanel>summary{list-style:none;cursor:pointer;padding:7px 10px;font-size:12px;font-weight:600;color:#4b5563;background:#f9fafb}.ui-subpanel>summary::-webkit-details-marker{display:none}.ui-subpanel>summary:before{content:"▸";display:inline-block;margin-right:7px;color:#9ca3af}.ui-subpanel[open]>summary:before{content:"▾"}.ui-subpanel>.summary-grid{padding:8px 10px 10px}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px}.summary{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:12px;margin-bottom:14px}.card{background:var(--panel);border-radius:var(--radius-sm);padding:8px 10px;box-shadow:none;border:1px solid var(--border)}.card b{display:block;font-size:11px;font-weight:600;color:#6b7280;margin-bottom:3px}.card span{display:block;font-size:16px;font-weight:700;line-height:1.15}.card-strong{border:1px solid #bfdbfe}.card.course-card{border-color:#e9d5ff;background:#faf8ff}.card.course-card b{color:#6b21a8}.card.course-card span{color:#7e22ce}.card.course-card-warn{border-color:#fecaca;background:#fff8f5}.card.course-card-warn b{color:#9a3412}.card.course-card-warn span{color:#c2410c}.warnings{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:8px 10px;border-radius:var(--radius);margin-bottom:10px;font-weight:600;font-size:13px}.calendar-wrap{width:100%}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.weekday{background:#eef0f3;border-radius:var(--radius-sm);padding:7px 6px;text-align:center;font-weight:600;font-size:12px;color:#4b5563}.weekday.weekend{background:var(--weekend-strong);color:#92400e}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:stretch}.day{background:var(--panel);border-radius:var(--radius);min-height:170px;padding:8px;box-shadow:var(--shadow);border:1px solid var(--border);display:flex;flex-direction:column;gap:3px;position:relative}.day.weekend-day{background:var(--weekend)}.day.other-month{background:#f8fafc;opacity:.65}.day.prev-month{opacity:.62}.day.next-month{background:#f8fafc;border-style:solid;border-color:#e8ecf1;opacity:.62}.day.next-month .date-main{color:#64748b}.day.prev-month .date-weekday,.day.next-month .date-weekday{color:#94a3b8}.day.is-today{border:1.5px solid var(--primary);box-shadow:0 0 0 1px #2563eb1f}.day-header{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:2px}.day-title-wrap{min-width:0}.date-main{display:flex;align-items:center;flex-wrap:wrap;gap:5px;font-size:15px;font-weight:700;line-height:1.2;color:var(--text)}.today-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#1d4ed8;background:#dbeafe;border:1px solid #bfdbfe;border-radius:4px;padding:1px 5px;line-height:1.35}.day.has-orthoplan{background:linear-gradient(180deg,#f0fdfa,#fff 42%)}.day.has-orthoplan.orthoplan-full{background:linear-gradient(180deg,#fff7ed,#fff 42%)}.orthoplan-chip{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label count" "hint hint";gap:1px 8px;width:100%;margin:6px 0 4px;padding:7px 9px;border:1px solid #5eead4;border-left:4px solid #0d9488;border-radius:8px;background:#ccfbf1;color:#115e59;font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.orthoplan-chip:hover,.orthoplan-chip:focus-visible{background:#99f6e4;outline:2px solid #0d9488;outline-offset:1px}.orthoplan-chip.is-full{border-color:#fdba74;border-left-color:#ea580c;background:#ffedd5;color:#9a3412}.orthoplan-chip.is-full:hover,.orthoplan-chip.is-full:focus-visible{background:#fed7aa;outline-color:#ea580c}.orthoplan-chip-label{grid-area:label;font-size:11px;font-weight:800;letter-spacing:.03em;text-transform:uppercase;line-height:1.2}.orthoplan-chip-count{grid-area:count;font-size:14px;font-weight:800;line-height:1.1;white-space:nowrap}.orthoplan-chip-hint{grid-area:hint;font-size:11px;font-weight:600;opacity:.85;line-height:1.2}.orthoplan-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;padding:8px 10px;border-radius:8px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:13px}.orthoplan-banner.is-connected{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.orthoplan-banner.is-error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.orthoplan-banner button{margin:0;white-space:nowrap}.orthoplan-status{font-size:13px;font-weight:600;color:var(--text);margin:0 0 12px;padding:8px 10px;border-radius:8px;background:#f3f4f6}.orthoplan-status.is-connected{color:#065f46;background:#d1fae5}.orthoplan-form label{display:block;margin:10px 0 4px;font-size:13px;font-weight:600}.orthoplan-form input{width:100%;box-sizing:border-box}.date-weekday{color:#9ca3af;font-size:11px;font-weight:500;margin-top:1px;text-transform:capitalize}.date-weekday.weekend{color:#b45309;font-weight:500}.day-hours{font-size:11px;color:#374151;background:#f3f4f6;border-radius:999px;padding:3px 7px;white-space:nowrap;font-weight:600;line-height:1.3}.day.is-today .day-hours{background:#dbeafe;color:#1e40af}.quick-actions{display:none}.day-add-select{width:auto;max-width:100%;min-width:0;border:1px solid #bfdbfe;border-radius:var(--radius-sm);background:#eff6ff;color:#1e3a8a;padding:4px 8px;font-size:11px;font-weight:600;cursor:pointer;outline:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.day-add-select:hover{background:#dbeafe}.day-add-select:focus{border-color:#2563eb;box-shadow:0 0 0 2px #2563eb24}.entry-chip{margin-bottom:0;border-radius:var(--radius-sm);overflow:hidden;box-shadow:none;border:1px solid rgba(15,23,42,.06)}.entry-chip>summary{list-style:none;cursor:pointer}.entry-chip>summary::-webkit-details-marker{display:none}.entry-chip-summary{display:flex;align-items:center;gap:5px;padding:4px 7px;min-height:28px;height:28px;background:var(--entry-color,#2563eb);color:#fff;line-height:1.2}.entry-chip-summary:after{content:"▾";font-size:9px;opacity:.7;flex-shrink:0}.entry-chip[open]>.entry-chip-summary:after{content:"▴"}.entry-chip-label{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.entry-chip-badge{flex-shrink:0;margin-left:auto;border:1px solid rgba(255,255,255,.32);background:#ffffff2e;border-radius:4px;padding:1px 4px;font-size:9px;font-weight:700;letter-spacing:.02em}.entry-chip-dark-text>.entry-chip-summary{color:#111827}.entry-chip-dark-text .entry-chip-badge{border-color:#1118272e;background:#11182714;color:#111827}.entry-chip-dark-text>.entry-chip-summary:after{color:#111827;opacity:.55}.entry-chip-warn{flex-shrink:0;font-size:11px;line-height:1}.entry-chip-body{padding:7px 8px 8px;background:#fff;border:1px solid #e5e7eb;border-top:none;cursor:pointer;line-height:1.35}.entry-chip-body:hover{background:#f8fafc}.entry-chip-title{font-size:12px;font-weight:700;color:#111827;margin-bottom:4px;word-break:break-word}.entry-chip-line{font-size:11px;color:#374151;margin-top:2px;font-weight:400}.entry-chip-note{color:#4b5563;font-style:italic}.entry-chip-alert{margin-top:5px;padding:5px 7px;border-radius:var(--radius-sm);background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:11px;font-weight:600}.entry-chip-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-top:6px;border-top:1px dashed #e5e7eb}.entry-chip-hint{font-size:10px;color:#6b7280;font-weight:500}.entry-chip-color-btn{width:20px;height:20px;border-radius:999px;border:2px solid #fff;box-shadow:0 0 0 1px #d1d5db;padding:0;flex-shrink:0}.entry-chip-course>.entry-chip-summary{background:var(--entry-color,#7e22ce)}.entry-chip-visit>.entry-chip-summary{background:#6b7280}.entry-chip-visit .entry-chip-body{border-color:#d1d5db}.entry-chip.pending>.entry-chip-summary{opacity:.75;outline:2px dashed rgba(255,255,255,.55)}.entry-chip.pending>.entry-chip-body{opacity:.85}.day-note{width:100%;display:flex;align-items:flex-start;gap:6px;padding:6px 8px;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:var(--radius-sm);background:#fffbeb;color:#78350f;text-align:left;font-weight:500;line-height:1.3}.day-note:hover,.day-note:focus-visible{background:#fef3c7;outline:2px solid rgba(245,158,11,.3);outline-offset:1px}.day-note.pending{opacity:.72;border-style:dashed}.day-note-icon{flex:0 0 auto;font-size:13px;font-weight:800}.day-note-text{display:-webkit-box;min-width:0;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-size:11px;overflow-wrap:anywhere;white-space:pre-line}.place{position:relative;padding:7px 8px 7px 10px;border-radius:10px;margin-bottom:5px;color:#fff;cursor:pointer;line-height:1.3;box-shadow:0 1px 3px #0000002e;overflow:hidden}.place:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#ffffff73}.place-top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.place-title{font-size:12px;font-weight:900}.place-badge{flex-shrink:0;border:1px solid rgba(255,255,255,.32);background:#fff3;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:900}.place-time,.place-note,.place-duration,.place-meta{margin-top:3px;font-size:11px;opacity:.97}.place-course .place-title{line-height:1.25}.place-meta.place-status{font-weight:700;opacity:1}.place-note{word-break:break-word}.place-warning{margin-top:4px;font-size:11px;font-weight:900;color:#fff7ed}.visit{background:#e5e7eb;padding:6px 8px;border-radius:8px;font-size:12px;margin-bottom:4px;cursor:pointer;color:#111827;line-height:1.3}.entry-chip-summary:hover{filter:brightness(.96)}@media(hover:hover)and (pointer:fine){.entry-chip-summary:hover{filter:brightness(.93)}}.visit:hover,.place:hover{filter:brightness(.97)}.day-actions{margin-top:auto;display:flex;justify-content:flex-end;align-items:center;gap:6px;padding-top:4px}.day-actions button{flex:1;min-width:85px;padding:7px 8px;font-size:12px;background:#dbeafe;color:#1e3a8a}@media(hover:hover)and (pointer:fine){.day-add-select{opacity:.4;width:auto;min-width:0;max-width:88px;padding:3px 7px;font-size:11px}.day:hover .day-add-select,.day-add-select:focus,.day-add-select:focus-visible{opacity:1;max-width:100%}}@media(hover:none),(pointer:coarse){.day-add-select{width:100%;min-height:36px;padding:8px 10px;font-size:13px;opacity:1}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a94;display:none;align-items:center;justify-content:center;padding:16px}.modal{width:390px;max-width:100%;max-height:92vh;overflow:auto;background:#fff;border-radius:12px;padding:16px;box-shadow:0 16px 40px #0003}.modal-wide{width:560px}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.modal h2{margin:0;font-size:21px}.icon-btn{width:36px;height:36px;border-radius:999px;padding:0;background:#f3f4f6;font-size:24px;line-height:1}.modal label{display:block;font-size:13px;color:#374151;margin:11px 0 5px;font-weight:600}.modal input,.modal select,.modal textarea{width:100%;border:1px solid #d1d5db;border-radius:var(--radius-sm);padding:10px;background:#fff;color:#111827}.modal input:disabled{background:#f3f4f6;color:#4b5563}.time-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.checkbox-row{display:flex;align-items:center;gap:9px;margin:12px 0 2px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid #e5e7eb;background:#f9fafb}.checkbox-row[hidden],.field-hint[hidden]{display:none}.checkbox-row input[type=checkbox]{width:18px;height:18px;flex:0 0 auto;margin:0;padding:0;accent-color:#2563eb}.checkbox-row label{margin:0;cursor:pointer}.field-hint{margin:6px 0 0;font-size:12px;line-height:1.5;color:#6b7280}.course-fields{margin:4px 0 10px;padding:12px 14px;border-radius:12px;border:1px solid #e9d5ff;background:#faf5ff}.course-fields label{color:#6b21a8}.course-fields input{border-color:#ddd6fe}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.modal-actions button{flex:1}.modal-notebook{width:920px;padding:18px}.notebook-header{align-items:flex-start}.notebook-lead{margin:5px 0 0;color:#6b7280;font-size:13px;line-height:1.4}.notebook-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-bottom:12px}.notebook-toolbar input{margin:0}.notebook-layout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:470px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.notebook-sidebar{min-width:0;padding:8px;background:#f8fafc;border-right:1px solid var(--border);overflow:auto;max-height:570px}.notebook-list{display:flex;flex-direction:column;gap:5px}.notebook-list-item{width:100%;padding:9px 10px;border:1px solid transparent;background:transparent;color:#1f2937;text-align:left;font-weight:500}.notebook-list-item:hover,.notebook-list-item:focus-visible{background:#fff;border-color:#dbeafe}.notebook-list-item.is-active{background:#eff6ff;border-color:#93c5fd;color:#1e3a8a}.notebook-list-item.pending{border-style:dashed;opacity:.72}.notebook-list-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}.notebook-list-preview{display:block;margin-top:3px;overflow:hidden;color:#6b7280;font-size:11px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.notebook-empty{margin:14px 8px;color:#6b7280;font-size:12px;line-height:1.45}.notebook-editor{min-width:0;padding:14px 16px 16px;background:#fff}.notebook-editor>label:not(.notebook-pin-row){display:block;margin:0 0 5px;color:#374151;font-size:13px;font-weight:700}.notebook-editor>label[for=notebookContent]{margin-top:12px}.optional-label{color:#9ca3af;font-weight:500}.modal .notebook-pin-row{display:flex;align-items:center;gap:8px;margin:10px 0 0;color:#4b5563;cursor:pointer;font-size:12px;font-weight:600}.modal .notebook-pin-row input{width:17px;height:17px;margin:0;padding:0;accent-color:#2563eb}.notebook-editor textarea{min-height:245px;resize:vertical;line-height:1.5}.notebook-editor-meta{display:flex;justify-content:space-between;gap:10px;margin-top:6px;color:#6b7280;font-size:11px}.notebook-status{min-height:18px;margin-top:4px;color:#047857;font-size:12px;font-weight:700}.notebook-status.is-error{color:#b91c1c}.notebook-actions{margin-top:8px}.notebook-actions button{min-width:110px}.primary{background:var(--primary);color:#fff}.danger{background:var(--danger);color:#fff}.color-list{display:flex;flex-direction:column;gap:12px}.color-row{display:grid;grid-template-columns:72px 1fr 70px auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff}.color-preview-tile{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:12px;color:#fff;font-size:11px;font-weight:800;letter-spacing:.03em;text-shadow:0 1px 2px rgba(0,0,0,.25);cursor:pointer;border:2px solid rgba(255,255,255,.35);box-shadow:inset 0 0 0 1px #0f172a14}.color-copy{display:flex;flex-direction:column;gap:3px}.color-copy strong{font-size:14px}.color-hint{color:var(--muted);font-size:12px}.color-row input[type=color]{width:70px;height:42px;padding:3px;border:1px solid var(--border);border-radius:10px;background:#fff;cursor:pointer}.color-status{min-width:64px;color:#059669;font-size:12px;font-weight:700}.rate-list{display:flex;flex-direction:column;gap:8px}.rate-row{display:grid;grid-template-columns:1fr 104px 116px 74px;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.rate-copy{display:flex;flex-direction:column;gap:2px;min-width:0}.rate-copy strong{font-size:13px;font-weight:600}.rate-hint{color:var(--muted);font-size:11px;font-weight:500}.rate-field{display:flex;flex-direction:column;gap:3px;margin:0}.rate-field>span{font-size:10px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.rate-field input{width:100%;border:1px solid #d1d5db;border-radius:var(--radius-sm);padding:7px 8px;font-size:13px;background:#fff;color:#111827}.rate-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #2563eb24}.rate-status{font-size:11px;font-weight:600;color:#059669;text-align:right}.earnings-body{padding:8px 10px 10px}.earnings-hint{margin:0 0 8px;padding:7px 9px;border:1px solid #bfdbfe;border-radius:var(--radius-sm);background:#eff6ff;color:#1e3a8a;font-size:12px;line-height:1.4}.earnings-list{display:flex;flex-direction:column}.earnings-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;padding:6px 2px;border-bottom:1px solid var(--border)}.earnings-row:last-child{border-bottom:none}.earnings-label{font-size:13px;color:var(--text)}.earnings-meta{font-size:11px;color:var(--muted);white-space:nowrap}.earnings-amount{font-size:13px;font-weight:600;white-space:nowrap;min-width:88px;text-align:right}.earnings-row-missing .earnings-label,.earnings-row-missing .earnings-amount{color:var(--muted)}.earnings-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:13px}.earnings-total strong{font-size:17px;font-weight:700}.earnings-note{margin:8px 0 0;font-size:11px;line-height:1.4;color:var(--muted)}.place-actions{display:flex;align-items:center;gap:6px}.place-color-btn{width:18px;height:18px;padding:0;border:2px solid rgba(255,255,255,.75);border-radius:999px;cursor:pointer;box-shadow:0 1px 3px #0f172a40}.place-color-btn:hover{transform:scale(1.08)}.report-result-info{padding:10px 12px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a8a;font-size:13px;line-height:1.45}.download-location-info{display:grid;gap:3px;width:min(100%,430px);border-color:#86efac;background:#f0fdf4;color:#14532d;text-align:left}.download-location-info strong{font-size:14px;overflow-wrap:anywhere}.download-location-info span{color:#166534}@media(max-width:1100px){.summary-strip,.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.day{min-height:150px;padding:7px}.date-main{font-size:14px}.weekday{font-size:11px;padding:6px 4px}}@media(max-width:700px){.topbar{align-items:flex-start}.topbar-actions{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.topbar-actions>button,.topbar-actions>.topbar-more{width:100%;min-width:0}.topbar-actions>.topbar-more{grid-column:1 / -1}.topbar-more>summary{width:100%;text-align:center}.topbar-more-menu{left:0;right:0;min-width:0}.container{padding:10px 12px 16px}.month-header{display:block}#monthTitle{font-size:22px;margin-bottom:6px}.report-result{justify-content:flex-start;text-align:left;margin-top:6px}.summary-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.strip-card{padding:7px 10px}.strip-card span{font-size:15px}.summary-grid{grid-template-columns:1fr}.card{padding:8px 10px}.card b{font-size:11px}.card span{font-size:15px}.weekdays{display:none}.calendar{grid-template-columns:1fr;gap:8px}.day{min-height:0;padding:10px 12px}.day.other-month{display:none}.date-main{font-size:16px}.date-weekday{font-size:12px}.day-hours{font-size:12px;padding:4px 8px}.orthoplan-chip{grid-template-columns:auto 1fr auto;grid-template-areas:"label count hint";align-items:center;gap:8px;padding:10px 12px}.orthoplan-chip-label{font-size:12px}.orthoplan-chip-count{font-size:16px}.orthoplan-chip-hint{font-size:12px;justify-self:end}.entry-chip-summary{min-height:32px;height:auto;padding:6px 8px}.entry-chip-label{font-size:12px}.day-add-select{width:100%;min-height:40px;padding:10px 12px;font-size:14px;opacity:1;text-indent:0;background-image:none}.modal{width:100%}.modal-notebook{padding:14px}.notebook-layout{grid-template-columns:1fr;min-height:0}.notebook-sidebar{max-height:150px;border-right:none;border-bottom:1px solid var(--border)}.notebook-editor{padding:12px}.notebook-editor textarea{min-height:210px}.notebook-actions button{min-width:calc(50% - 4px)}.color-row{grid-template-columns:60px 1fr 60px}.color-status{grid-column:2 / -1}.rate-row{grid-template-columns:1fr 1fr}.rate-copy{grid-column:1 / -1}.rate-field input{min-height:40px}.rate-status{grid-column:1 / -1;text-align:left}.earnings-row{grid-template-columns:1fr auto}.earnings-meta{grid-column:1}.earnings-amount{grid-row:1;grid-column:2}}@media(max-width:480px){.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.auth-panel{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:18px;background:#f3f4f6}.auth-card{width:480px;max-width:100%;background:#fff;border-radius:18px;padding:24px;box-shadow:0 20px 50px #0f172a24;border:1px solid #e5e7eb}.auth-lead{margin:0 0 16px;font-size:14px;line-height:1.45;color:#4b5563}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.auth-tab{background:#f3f4f6;color:#374151;font-weight:800}.auth-tab.is-active{background:#dbeafe;color:#1e40af}.auth-pane .primary{width:100%;margin-top:4px}.auth-pane label{display:block;font-size:13px;font-weight:800;color:#374151;margin:10px 0 5px}.auth-pane input{width:100%;border:1px solid #d1d5db;border-radius:10px;padding:10px}.auth-note{margin:10px 0 0;font-size:12px;line-height:1.4;color:#6b7280}.auth-remember{display:flex;align-items:flex-start;gap:8px;margin-top:16px;font-size:13px;font-weight:700;color:#111827;cursor:pointer}.auth-remember input{margin-top:2px}.auth-hint{margin:6px 0 0;font-size:12px;color:#6b7280;line-height:1.35}.install-card{display:grid;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid #e5e7eb}.install-app-btn{width:100%;background:#16a34a;color:#fff;font-weight:800}.auth-card .install-help{margin:0;color:#166534;font-size:12px;line-height:1.4}.install-result-info{border-color:#86efac;background:#f0fdf4;color:#14532d;text-align:left}.auth-card h1{margin:0 0 10px;font-size:28px}.auth-card p{margin:0 0 18px;color:#4b5563;line-height:1.45}.error-text{margin-top:12px;color:#dc2626;font-weight:800;font-size:13px}.sync-status{margin-top:4px;color:#6b7280;font-size:12px;font-weight:700}body.is-offline .sync-status{color:#b45309}.place.pending,.visit.pending{opacity:.72;outline:2px dashed rgba(255,255,255,.55)}body.is-syncing #loadingBar{display:block}.share-export-stage{position:fixed;left:0;top:0;z-index:-1;width:1600px;min-height:900px;padding:28px;background:#f8fafc;color:#111827;pointer-events:none;transform:translate(-220vw)}.share-sheet{width:100%;background:#f8fafc;border-radius:28px;padding:28px;font-family:Arial,Helvetica,sans-serif}.share-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:18px}.share-eyebrow{color:#2563eb;font-size:15px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.share-header h1{margin:0;color:#111827;font-size:44px;line-height:1.05}.share-subtitle{margin-top:8px;color:#475569;font-size:16px;font-weight:800}.share-stamp{background:#fff;border:1px solid #e5e7eb;border-radius:999px;color:#475569;font-size:14px;font-weight:800;padding:10px 14px;box-shadow:0 6px 18px #0f172a14;white-space:nowrap}.share-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.share-summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:14px 16px;box-shadow:0 8px 24px #0f172a14}.share-summary-card b{display:block;color:#475569;font-size:13px;margin-bottom:8px}.share-summary-card span{display:block;color:#111827;font-size:24px;font-weight:900;line-height:1.1}.share-calendar-wrap{width:100%}.share-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}.share-weekday{background:#e5e7eb;border-radius:14px;padding:9px 8px;text-align:center;color:#111827;font-size:14px;font-weight:900}.share-weekday.weekend{background:#fde68a}.share-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.share-day{min-height:178px;background:#fff;border:1px solid rgba(226,232,240,.95);border-radius:16px;padding:9px;box-shadow:0 6px 18px #0f172a12;overflow:hidden}.share-day.weekend-day{background:#fff7ed}.share-day.other-month{opacity:.38}.share-day-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;border-bottom:1px solid #e5e7eb;padding-bottom:6px;margin-bottom:7px}.share-day-date{color:#111827;font-size:17px;font-weight:900}.share-day-weekday{color:#64748b;font-size:11px;font-weight:900;margin-top:3px;text-transform:capitalize;text-align:right}.share-day-weekday.weekend{color:#dc2626}.share-place{border-radius:10px;color:#fff;margin-bottom:5px;padding:7px 8px;box-shadow:0 1px 3px #00000029;overflow:hidden}.share-place-top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.share-place-top strong{font-size:11px;line-height:1.25}.share-place-top span{flex-shrink:0;border:1px solid rgba(255,255,255,.32);background:#fff3;border-radius:999px;padding:2px 5px;font-size:9px;font-weight:900}.share-place-time,.share-place-duration{margin-top:3px;font-size:10px;font-weight:800;opacity:.96}.share-footer{margin-top:14px;color:#64748b;font-size:12px;font-weight:800;text-align:right}.courses-panel{margin-top:18px}.courses-panel>.ui-panel-toggle{background:linear-gradient(180deg,#faf5ff,#f8fafc)}.courses-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:14px}.courses-block{background:var(--panel);border:1px solid rgba(229,231,235,.85);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}.courses-block h2{margin:0 0 6px;font-size:17px;color:#1f2937}.courses-block-hint{margin:0 0 12px;font-size:12px;color:#6b7280}.courses-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.courses-list-item{border:1px solid #e5e7eb;border-radius:10px;padding:10px 12px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.courses-list-item strong{font-size:13px;line-height:1.35;color:#111827}.courses-meta{font-size:12px;font-weight:800;color:#7e22ce}.courses-note{font-size:12px;color:#4b5563;line-height:1.35}.internships-list .courses-meta{color:#1d4ed8}@media(max-width:900px){.courses-panel-grid{grid-template-columns:1fr}}
