*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #f97316;--accent-dark: #ea6a00;--bg: #f8fafc;--surface: #ffffff;--border: #e2e8f0;--text: #1e293b;--muted: #64748b;--danger: #ef4444;--today-bg: #fff7ed;--today-border:#f97316;--has-data-bg: #f0fdf4;--race-color: #7c3aed;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}html,body{max-width:100%;overflow-x:hidden}body{background:var(--bg);color:var(--text);min-height:100vh}img{max-width:100%}.v3{color:var(--accent);font-weight:100}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 1.5rem;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10}.app-logo{font-size:1.1rem;font-weight:700;letter-spacing:-.3px}.app-logo-short{display:none}.app-header-right{display:flex;align-items:center;gap:1rem}.app-user{color:var(--muted);font-size:.875rem}.app-main{flex:1;padding:1.5rem;max-width:1100px;margin:0 auto;width:100%}button{cursor:pointer;border:none;background:none;font:inherit}.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;transition:background .15s,opacity .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-dark)}.btn-ghost{color:var(--text)}.btn-ghost:hover{background:var(--border)}.btn-outline{border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:var(--border)}.unit-toggle-group{display:flex;border:1.5px solid var(--accent);border-radius:999px}.unit-toggle-opt{background:transparent;border:none;color:var(--accent);font-weight:700;font-size:.8rem;padding:.3rem .65rem;cursor:pointer;letter-spacing:.5px;transition:background .15s,color .15s;line-height:1;touch-action:manipulation}.unit-toggle-opt:first-child{border-radius:999px 0 0 999px}.unit-toggle-opt:last-child{border-radius:0 999px 999px 0}.unit-toggle-opt:hover:not(.active){background:color-mix(in srgb,var(--accent) 12%,transparent)}.unit-toggle-opt.active{background:var(--accent);color:#fff}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-danger:disabled{opacity:.35}.btn-full{width:100%;justify-content:center;padding:.6rem 1rem}.link-btn{color:var(--accent);text-decoration:underline;background:none;border:none;cursor:pointer;font:inherit}.form-group{display:flex;flex-direction:column;gap:.3rem}.form-group label{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.form-group input,.form-group textarea{border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;font-family:inherit;font-size:16px;color:var(--text);background:var(--surface);transition:border .15s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f9731626}.form-group textarea{resize:vertical}.form-error{color:var(--danger);font-size:.85rem}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff7ed,#f8fafc);padding:1.5rem;gap:1.25rem}@media (min-width: 700px){.cal-nav-actions{order:2}}.auth-compatible img{height:auto;opacity:.8;width:190px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:2.5rem 2rem;width:100%;max-width:380px;box-shadow:0 4px 24px #0000000f}.auth-title{font-size:1.5rem;font-weight:800;text-align:center;margin-bottom:.25rem}.auth-subtitle{text-align:center;color:var(--muted);font-size:.9rem;margin-bottom:1.75rem}.screenshot-trigger{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:var(--accent);cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}.screenshot-trigger:hover{color:var(--accent-dark)}.lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:200;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .15s ease}.lightbox-box{position:relative;max-width:min(900px,100%);max-height:90vh;border-radius:10px;overflow:hidden;box-shadow:0 24px 80px #00000080;animation:slideUp .18s ease}.lightbox-box img{display:block;width:100%;height:auto;max-height:90vh;object-fit:contain}.lightbox-close{position:absolute;top:.6rem;right:.6rem;background:#0000008c;color:#fff;border:none;border-radius:50%;width:28px;height:28px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:2}.lightbox-arrow{position:absolute;top:50%;transform:translateY(-50%);background:#00000073;color:#fff;border:none;border-radius:50%;width:40px;height:40px;font-size:1.6rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;z-index:2;-webkit-user-select:none;user-select:none}.lightbox-arrow:hover{background:#000c}.lightbox-arrow-left{left:.6rem}.lightbox-arrow-right{right:.6rem}.lightbox-dots{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);display:flex;gap:.4rem;z-index:2}.lightbox-dot{width:8px;height:8px;border-radius:50%;border:none;background:#ffffff73;cursor:pointer;padding:0;transition:background .15s,transform .15s}.lightbox-dot.active{background:#fff;transform:scale(1.25)}.lightbox-dot:hover{background:#fffc}.lightbox-close:hover{background:#000000d9}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-toggle{margin-top:1.25rem;text-align:center;font-size:.875rem;color:var(--muted)}.terms-modal{max-width:520px;display:flex;flex-direction:column;max-height:90vh}.terms-body{display:flex;flex-direction:column;padding:1rem 1.5rem 1.5rem;gap:.75rem;min-height:0}.terms-intro{font-size:.875rem;color:var(--muted);margin:0}.terms-scroll{flex:1;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:1rem 1.25rem;background:var(--bg);display:flex;flex-direction:column;gap:.6rem;max-height:340px;font-size:.875rem;line-height:1.6;color:var(--text)}.terms-scroll h3{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-top:.5rem}.terms-scroll h3:first-child{margin-top:0}.terms-scroll p{margin:0}.terms-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:.25rem}.terms-checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.terms-checkbox-row input[type=checkbox]{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.calendar-wrap{display:flex;flex-direction:column;gap:1rem}.cal-nav{display:flex;align-items:center;gap:.75rem}.cal-nav-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.cal-nav-month{display:flex;align-items:center;gap:.5rem;flex:1}.cal-title{display:flex;align-items:baseline;gap:.75rem}.cal-title h2{font-size:1.4rem;font-weight:700}.cal-loading{font-size:.8rem;color:var(--muted)}.gen-btn-short{display:none}.cal-grid{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.cal-header-row{display:grid;grid-template-columns:repeat(7,1fr) 96px;background:var(--bg);border-bottom:1px solid #9f9f9f}.cal-miles-run .the-number,.cal-key .cal-miles-run{background-color:#16a349;color:#fff;padding:1px 3px;border-radius:3px}.cal-miles-bike .the-number,.cal-key .cal-miles-bike{background-color:#dc2626;color:#fff;padding:1px 3px;border-radius:3px}.cal-miles-swim .the-number,.cal-key .cal-miles-swim{background-color:#2563eb;color:#fff;padding:1px 3px;border-radius:3px}.cal-header-cell{padding:.5rem;text-align:center;font-size:.75rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px;background-color:#545454}.cal-week-row{display:grid;grid-template-columns:repeat(7,1fr) 96px;border-bottom:1px solid var(--border)}.cal-week-row:last-child{border-bottom:none}.cal-day{min-height:90px;padding:.5rem;border-right:1px solid var(--border);border-top:1px solid #8a8a8a;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:background .12s;position:relative}.cal-day:hover{background:#f1f5f9}.cal-day:last-of-type{border-right:none}.cal-day-out{background:#fafafa;opacity:.45}.cal-day-today{background:var(--today-bg)!important;border-top:2px solid var(--today-border)}.cal-day-has-data{background:var(--has-data-bg)}.cal-day-has-data:hover{background:#dcfce7}.cal-day-past-data{background:#f9f9fa}.cal-day-past-data:hover{background:#e2e8f0}.cal-day-future-data{background:#f2f8ff}.cal-day-future-data:hover{background:#dbeafe}.strava-source-icon{display:inline-block;width:10px;height:10px;min-width:10px;min-height:10px;color:#fc4c02;vertical-align:middle;margin-right:2px;flex-shrink:0;overflow:visible}.cal-day-num{font-size:.78rem;font-weight:700;color:var(--muted);line-height:1;margin-bottom:3px}.cal-day-today .cal-day-num{background:var(--accent);color:#fff;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.cal-day-miles{width:fit-content;font-size:1rem;font-weight:700;color:var(--text);line-height:1;margin-top:2px;margin-bottom:2px}.cal-day-unit{font-size:.6rem;font-weight:600;color:#9f9f9f;letter-spacing:.4px;line-height:1;margin-top:1px}.cal-day-unit-short{display:none}.cal-day-race-flag{display:none;font-size:.8rem;line-height:1}.cal-day-race{font-size:.72rem;color:var(--race-color);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal-header-cell .cal-day-dragover{background:#e0f2fe!important;outline:2px dashed var(--accent);outline-offset:-2px}.cal-day-miles[draggable=true]{cursor:grab}.cal-day-miles[draggable=true]:active{cursor:grabbing}.cal-day-miles-dragging{opacity:.35}.cal-day-notes-dot{position:absolute;top:6px;right:6px;font-size:.45rem;color:var(--accent)}.cal-week-total{background:#9f9f9f;color:#fff}.cal-week-total-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#545454;padding:.5rem;min-height:90px;border:1px solid black;border-bottom:none}.cal-week-breakdown{display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1}.cal-week-type-miles{display:flex;align-items:center;gap:2px;font-size:.95rem;font-weight:800;line-height:1.2}.cal-week-type-icon{font-size:.72rem;line-height:1}.cal-week-miles{font-size:1.05rem;font-weight:800;color:var(--accent);line-height:1}.cal-week-label{font-size:.6rem;font-weight:600;color:#aaa;letter-spacing:.5px;margin-top:1px}.cal-week-label-short{display:none}.cal-week-empty{color:var(--border);font-size:1.1rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:12px;width:100%;max-width:440px;box-shadow:0 20px 60px #0003;animation:slideUp .18s ease;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 0}.modal-header h2,.modal-header h3{font-size:1rem;font-weight:700;margin:0}.modal-close{color:var(--muted);font-size:1rem;padding:.25rem;border-radius:4px}.modal-close:hover{background:var(--border)}.modal-body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.modal-actions{display:flex;justify-content:space-between;align-items:center;margin-top:.5rem}.modal-actions-right{display:flex;gap:.5rem}:root{--strava: #FC4C02;--strava-dark: #d93f00}.strava-connect-btn{background:var(--strava);color:#fff;display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;padding:.35rem .85rem;border-radius:6px}.strava-connect-btn:hover{background:var(--strava-dark)}.strava-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;padding:.3rem .6rem;border-radius:6px;background:#fff3ee;color:var(--strava);border:1px solid #fcd5c0}.strava-disconnect{margin-left:.2rem;color:var(--muted);font-size:.7rem;padding:.1rem .3rem;border-radius:3px}.strava-disconnect:hover{background:var(--border);color:var(--text)}.strava-banner{padding:.65rem 1.5rem;font-size:.875rem;font-weight:500}.strava-banner.success{background:#f0fdf4;color:#15803d;border-bottom:1px solid #bbf7d0}.strava-banner.error{background:#fef2f2;color:#b91c1c;border-bottom:1px solid #fecaca}.strava-connect-img-btn{background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;opacity:.9;transition:opacity .15s,transform .1s}.strava-connect-img-btn:hover{opacity:1;transform:scale(1.03)}.strava-connect-img-btn img{height:32px;display:block}.cal-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;flex-wrap:wrap;gap:.5rem}.cal-key{display:flex;gap:.5rem}.cal-key-item{display:flex;align-items:center;gap:.3rem;font-size:.8rem;font-weight:600}.strava-powered{display:flex;justify-content:flex-end;margin-top:0}.strava-powered img{height:auto;opacity:.85;width:150px}.ai-source-icon{font-size:.5rem;line-height:1;vertical-align:middle;margin-right:1px}.week-cell-buttons{display:flex;flex-direction:row;gap:4px;margin-top:4px}.clear-week-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#6b7280;color:#fff;transition:background .15s,transform .1s;flex-shrink:0}.clear-week-btn:hover{background:var(--danger);transform:scale(1.1)}.strava-week-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--strava);color:#fff;font-size:.6rem;transition:background .15s,transform .1s;flex-shrink:0}.strava-week-btn:hover{background:var(--strava-dark);transform:scale(1.1)}.strava-modal .modal-header{padding-bottom:.25rem}.strava-modal-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:700;color:var(--strava)}.strava-week-range{font-size:.9rem;color:var(--muted);font-weight:500}.strava-hint{font-size:.85rem;color:var(--muted)}.strava-import-btn{background:var(--strava);color:#fff}.strava-import-btn:hover:not(:disabled){background:var(--strava-dark)}.strava-import-btn:disabled{opacity:.5}.strava-preview-table{width:100%;border-collapse:collapse;font-size:.875rem}.strava-preview-table th{text-align:left;padding:.4rem .5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);border-bottom:2px solid var(--border)}.strava-preview-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border)}.strava-preview-table tfoot td{border-top:2px solid var(--border);border-bottom:none;padding-top:.5rem}.strava-row-has-data{background:#fff3ee}.strava-mi{color:var(--strava);font-weight:700}.strava-mi-run{color:#16a34a;font-weight:700}.strava-mi-bike{color:#dc2626;font-weight:700}.strava-mi-swim{color:#2563eb;font-weight:700}.current-mi{color:var(--muted);font-size:.8rem}.overwrite-warn{color:var(--accent);font-size:.75rem;margin-left:.2rem;cursor:default}.cal-miles-run{color:#16a34a}.cal-miles-bike{color:#dc2626}.cal-miles-swim{color:#2563eb}.activity-tabs{display:flex;border-bottom:2px solid var(--border);padding:0 1.25rem;gap:0}.activity-tab{position:relative;padding:.5rem 1rem;font-size:.85rem;font-weight:600;background:none;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer;color:var(--muted);transition:color .15s,border-color .15s}.activity-tab:hover{color:var(--text)}.activity-tab-run.active{color:#16a34a;border-bottom-color:#16a34a}.activity-tab-bike.active{color:#dc2626;border-bottom-color:#dc2626}.activity-tab-swim.active{color:#2563eb;border-bottom-color:#2563eb}.activity-tab-dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--accent)}@media (max-width: 700px){.app-main{padding:.75rem}.app-logo-long{display:none}.app-logo-short{display:inline}.cal-title h2{font-size:1.1rem}.cal-day{min-height:72px;padding:.35rem}.cal-day-miles{font-size:.9rem}.cal-week-total-cell{min-height:72px}.cal-week-miles{font-size:.95rem}.cal-week-type-miles{font-size:.85rem}.cal-header-cell{padding:.4rem .2rem;font-size:.65rem}.cal-nav{flex-direction:column-reverse;align-items:stretch;gap:.4rem}.cal-nav-actions{justify-content:space-between;gap:.3rem}.cal-nav-month{justify-content:center}}@media (max-width: 480px){.auth-card{padding:2rem 1.25rem}.auth-wrap{padding:1rem}.app-main{padding:.4rem}.app-header{padding:0 .75rem}.app-user{display:none}.strava-connect-btn,.strava-badge{font-size:.7rem;padding:.25rem .5rem}.cal-title h2{font-size:1rem;font-weight:700}.btn-outline{padding:.3rem .6rem;font-size:.78rem}.gen-btn-long{display:none}.gen-btn-short{display:inline}.cal-header-row,.cal-week-row{grid-template-columns:repeat(7,1fr) 42px}.cal-header-cell{padding:.3rem 0;font-size:.58rem;letter-spacing:0;text-align:center}.cal-day{min-height:52px;padding:.2rem .15rem;gap:1px}.cal-day-num{font-size:.62rem}.cal-day-today .cal-day-num{width:16px;height:16px;font-size:.58rem}.cal-day-miles{font-size:.72rem;font-size:11px;margin-top:2px}.cal-day-unit{font-size:.5rem}.cal-day-unit-long{display:none}.cal-day-unit-short{display:block}.cal-day-race{display:none}.cal-day-race-flag{display:block}.cal-day-notes-dot{display:none}.cal-week-total-cell{min-height:52px;padding:.2rem .1rem}.cal-week-miles{font-size:.75rem}.cal-week-type-miles{font-size:.68rem}.cal-week-type-icon{display:none}.cal-week-label{font-size:.5rem}.cal-week-label-long{display:none}.cal-week-label-short{display:block}.cal-week-empty{font-size:.75rem}.week-cell-buttons{flex-direction:column;gap:2px;margin-top:2px}.strava-week-btn{width:16px;height:16px}.strava-week-btn svg{width:8px;height:8px}.clear-week-btn{width:16px;height:16px}.clear-week-btn svg{width:8px;height:8px}}.cal-month-summary{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.25rem 0}.cal-month-summary-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.cal-month-summary-sports{display:flex;align-items:center;gap:.4rem}.cal-month-sport .the-number{font-size:.85rem;padding:2px 6px}.cal-month-summary-unit{font-size:.65rem;font-weight:600;color:var(--muted)}.plan-gen-modal{max-width:480px}.plan-gen-loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 1rem;color:var(--muted)}.plan-gen-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.plan-gen-summary{display:flex;gap:1.5rem;justify-content:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.9rem;color:var(--muted)}.plan-gen-summary strong{color:var(--text);font-size:1.05rem}.plan-gen-weeks{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;margin-bottom:1.25rem;padding-right:4px}.plan-gen-week-row{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.plan-gen-week-label{width:64px;flex-shrink:0;color:var(--muted);font-size:.75rem}.plan-gen-week-bar-wrap{flex:1;height:10px;background:var(--border);border-radius:99px;overflow:hidden}.plan-gen-week-bar{height:100%;background:var(--accent);border-radius:99px;min-width:4px;transition:width .3s ease}.plan-gen-week-miles{width:52px;text-align:right;color:var(--muted);font-size:.75rem;flex-shrink:0}.plan-gen-overwrite label{font-size:.85rem;font-weight:500}.plan-gen-radio-group{display:flex;flex-direction:column;gap:.4rem;margin-top:.4rem}.plan-gen-radio{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:400!important;cursor:pointer}.sport-selector{display:flex;gap:.4rem}.sport-btn{flex:1;padding:.5rem .25rem;border-radius:8px;border:1.5px solid var(--border);color:var(--muted);font-size:.78rem;font-weight:600;background:var(--surface);transition:border-color .15s,background .15s,color .15s;text-align:center;white-space:nowrap}.sport-btn:hover{border-color:var(--accent);color:var(--text)}.sport-btn.active{border-color:var(--accent);background:#fff7ed;color:var(--accent)}.plan-gen-done{background:var(--has-data-bg);border:1px solid #bbf7d0;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem;font-size:.9rem}.cal-feed-btn{font-size:1rem;padding:.3rem .55rem}.cal-feed-body{padding:1.25rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.cal-feed-desc{font-size:.875rem;color:var(--muted);margin:0}.cal-feed-loading,.cal-feed-error{font-size:.875rem;color:var(--muted)}.cal-feed-error{color:var(--danger)}.cal-feed-url-row{display:flex;gap:.5rem}.cal-feed-url-input{flex:1;font-size:.75rem;font-family:monospace;padding:.45rem .6rem;border:1.5px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);min-width:0}.cal-feed-url-input:focus{outline:none;border-color:var(--accent)}.cal-feed-copy-btn{background:var(--accent);color:#fff;white-space:nowrap;transition:background .15s}.cal-feed-copy-btn:hover{background:#c2410c}.cal-feed-copy-btn.copied{background:#16a34a}.cal-feed-instructions{font-size:.8rem;color:var(--muted)}.cal-feed-instructions strong{color:var(--text)}.cal-feed-instructions ul{margin:.4rem 0 .5rem 1.1rem;padding:0;display:flex;flex-direction:column;gap:.2rem}.cal-feed-note{margin:0;font-size:.75rem;color:var(--muted)}.cal-feed-reset-row{display:flex;justify-content:flex-end}.cal-feed-reset-btn{font-size:.8rem;padding:.3rem .8rem;color:var(--muted)}.cal-feed-reset-btn:hover{color:var(--danger);border-color:var(--danger)}.share-link-actions{display:flex;gap:.5rem;flex-wrap:wrap}.share-revoke-btn:hover{color:var(--danger)!important;border-color:var(--danger)!important}.shared-view-owner{font-weight:600;color:var(--text)}.shared-view-loading,.shared-view-error{text-align:center;padding:4rem 1rem;color:var(--muted);font-size:1rem}.shared-view-notice{text-align:center;font-size:.8rem;color:var(--muted);margin-top:.5rem}.shared-view-notice a{color:var(--accent)}
