.space-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:22px}.space-switch{display:flex;gap:4px;padding:4px;border:1px solid #e4e9ef;border-radius:18px;background:#f6f8fa}.space-switch button{font-size:13px;padding:9px 15px;border-radius:13px}.space-switch [aria-pressed=true]{background:#fff;box-shadow:0 2px 8px #19334a12}.space-tools{margin-left:auto;display:flex;gap:8px}.space-tools button{font-size:12px;padding:10px;border:1px solid #e4e9ef;border-radius:13px}.shared-panel{padding:26px;border:1px solid #e4e9ef;border-radius:22px;background:#f8fafb}.shared-panel h2{font-size:24px;margin-top:0}.shared-panel p{font-size:13px;line-height:1.8;color:#657a89}.shared-form{display:grid;grid-template-columns:1fr 160px auto;gap:12px;align-items:end;margin:20px 0}.shared-form label{margin:0}.shared-form .primary{min-height:44px}.plan-row{display:flex;align-items:center;gap:12px;padding:16px 0;border-bottom:1px solid #dce4eb}.plan-row input{width:20px;height:20px;margin:0}.plan-row span{flex:1;font-size:15px;line-height:1.6}.plan-row small{display:block;color:#687e8d}.plan-row.done span{text-decoration:line-through;color:#7b8a96}.plan-row button{padding:10px;font-size:12px}.shared-note{width:100%;min-height:110px;border:1px solid #d9e2ea;border-radius:14px;padding:14px;background:#ffffffb3;line-height:1.7}.shared-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.shared-actions span{font-size:12px;color:#617a8a}.auth-page{min-height:100vh;display:grid;place-items:center;background:#f5f7fa;padding:28px 16px}.auth-page main{padding:0;margin:0}.auth-card{width:min(440px,100%);padding:32px!important;border:1px solid #e0e7ef;border-radius:26px;background:#ffffffd9;box-shadow:0 20px 60px #243e6010}.auth-card h1{font-size:27px;margin-top:20px}.auth-card p{font-size:13px;line-height:1.8;color:#657789}.auth-card .primary{display:inline-block;width:100%;text-align:center;text-decoration:none;margin-top:10px}.auth-links{display:flex;gap:18px;font-size:13px;margin:22px 0}.auth-links a{color:#4e708b}.auth-card .eyebrow{margin-top:25px}.account-actions{display:grid;gap:12px;margin-top:16px}.account-actions button{border:1px solid #d8e2eb;border-radius:12px;padding:12px;text-align:left}.invite-code{overflow-wrap:anywhere;user-select:all;font-size:14px;padding:14px;background:#eef3f8;border-radius:12px}.account-name{font-size:14px;color:#667e8e}.danger{padding:10px}.account-message{font-size:13px;line-height:1.8}.install-steps{font-size:14px;line-height:1.9}.install-steps li{margin:10px 0}#app-update{background:#e6eff6}.import-file{font-size:13px}[data-theme=dark] .space-switch,[data-theme=dark] .shared-panel{background:#1b222d;border-color:#ffffff20}[data-theme=dark] .space-switch [aria-pressed=true]{background:#3e5369}[data-theme=dark] .space-tools button,[data-theme=dark] .account-actions button{border-color:#ffffff25}[data-theme=dark] .shared-note{background:#131b26;color:#dce8f3;border-color:#485969}[data-theme=dark] .shared-panel p,[data-theme=dark] .shared-actions span,[data-theme=dark] .account-name{color:#a9bfd1}[data-theme=dark] .plan-row{border-color:#ffffff18}[data-theme=dark] .plan-row small{color:#9cb5c8}[data-theme=dark] .auth-page{background:#101216}[data-theme=dark] .auth-card{background:#202835;border-color:#ffffff20}[data-theme=dark] .auth-card p{color:#afc1d3}[data-theme=dark] .invite-code{background:#13202e;color:#d6e7f5}[data-theme=dark] #app-update{background:#304a60}@media(max-width:760px){.space-tools{margin-left:0}.space-toolbar{gap:12px}.shared-form{grid-template-columns:1fr 1fr}.shared-form label:first-child{grid-column:1/-1}.shared-panel{padding:20px}.space-switch button{font-size:12px}.space-tools button{font-size:11px}.shared-actions .primary{padding:10px 16px}.auth-card{padding:26px!important}}
.anniversary-section{margin:32px 0;padding-bottom:28px;border-bottom:1px solid var(--ui-line,#dce4eb)}.anniversary-section .section-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.anniversary-section h3{font-size:20px;font-weight:600;letter-spacing:-.025em;margin:0}.anniversary-section .section-head p{margin:8px 0 0}.anniversary-section .text-button{min-height:44px;white-space:nowrap}.anniversary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.anniversary-card{text-align:left;display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:22px;border:1px solid var(--ui-line,#dce4eb);background:var(--ui-surface,#fff);color:var(--ui-ink,#1d1d1f);min-height:180px;transition:border-color .2s,box-shadow .2s;overflow-wrap:anywhere}.anniversary-card:hover{border-color:var(--ui-accent,#0066cc);box-shadow:0 6px 20px #00000008}.anniversary-title{font-size:15px;font-weight:500}.anniversary-days{font-size:28px;line-height:1.3;letter-spacing:-.04em;font-weight:600;font-variant-numeric:tabular-nums}.anniversary-date,.anniversary-next{font-size:13px;line-height:1.6;color:var(--ui-secondary,#626269)}.anniversary-next{margin-top:auto;color:var(--ui-accent,#0066cc)}#anniversary-dialog{width:min(460px,calc(100vw - 32px));box-sizing:border-box}.anniversary-repeat{display:flex;align-items:center;gap:10px;min-height:44px}.anniversary-repeat input{width:20px;height:20px;margin:0;accent-color:var(--ui-accent,#0066cc)}#anniversary-dialog .subtle{line-height:1.75}#anniversary-dialog .form-actions{gap:12px;flex-wrap:wrap}#anniversary-dialog .form-actions button{min-height:44px}.anniversary-grid .empty{grid-column:1/-1}[data-theme=dark] .anniversary-card{background:var(--ui-surface);border-color:var(--ui-line);color:var(--ui-ink)}@media(max-width:760px){.anniversary-grid{grid-template-columns:1fr}.anniversary-section .section-head{align-items:flex-start;gap:8px}.anniversary-section h3{font-size:18px}.anniversary-card{padding:20px;min-height:160px}.anniversary-days{font-size:26px}.anniversary-section .section-head p{font-size:12px}.anniversary-section .text-button{font-size:12px}}@media(prefers-reduced-motion:reduce){.anniversary-card{transition:none}}
.partner-section{margin:28px 0 36px;padding:24px;border:1px solid var(--ui-line,#dce4eb);border-radius:24px;background:var(--ui-surface,#fff)}.partner-section .section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.partner-section h3{font-size:20px;letter-spacing:-.025em;margin:0}.partner-section .section-head p{margin:8px 0 0}.sharing-control{display:flex;align-items:flex-start;gap:12px;color:var(--ui-ink,#1d1d1f);font-size:14px;line-height:1.6;padding:16px;background:var(--ui-panel,#f5f5f7);border-radius:16px;min-height:44px}.sharing-control input{width:22px;height:22px;margin:2px 0 0;flex-shrink:0;accent-color:var(--ui-accent,#0066cc)}.sharing-control small{display:block;margin-top:6px;font-size:12px;line-height:1.7;color:var(--ui-secondary,#626269)}.partner-owner{font-size:18px;margin:24px 0 8px}.partner-week-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0 16px}.partner-week-bar button{min-width:44px;min-height:44px;border:1px solid var(--ui-line,#ddd);border-radius:12px;padding:8px 12px}.partner-week-bar label{margin:0;display:flex;align-items:center;gap:8px}.partner-week-bar select{width:66px;min-height:44px;margin:0}.partner-course{cursor:default;margin:4px;display:flex}.partner-course:hover{transform:none;box-shadow:none}.partner-scroll{max-height:70vh;overflow:auto}.partner-scroll .fixed-timetable{background:var(--ui-surface,#fff)}.partner-outside .partner-course{margin-block:12px}.partner-section>.subtle{line-height:1.8;min-height:22px}#partner-refresh{min-height:44px;white-space:nowrap}[data-theme=dark] .partner-section{background:var(--ui-surface);border-color:var(--ui-line)}[data-theme=dark] .sharing-control{color:var(--ui-ink)}[data-theme=dark] .sharing-control small{color:var(--ui-secondary)}[data-theme=dark] .partner-week-bar button{color:var(--ui-ink);border-color:var(--ui-line)}@media(max-width:760px){.partner-section{padding:16px;margin-inline:-4px}.partner-section h3{font-size:18px}.partner-section .section-head{align-items:flex-start;gap:8px}.partner-section .section-head p{font-size:12px}.partner-scroll{margin-inline:-8px}.partner-course{padding:12px 10px}.partner-week-bar{gap:8px}.sharing-control{padding:12px}.partner-week-bar>.subtle{flex-basis:100%}.partner-section .text-button{font-size:12px}}
