@font-face{font-family:Nanum Ddobak;src:url(/fonts/nanum-ddobak.ttf) format("truetype");font-weight:400;font-style:normal;font-display:block}*{box-sizing:border-box;margin:0;padding:0}:root{--paper: #f8f3e7;--paper-2: #f1ead8;--surface: #fffdf7;--surface-sunk: #faf5e8;--ink: #1a1410;--ink-2: #3d342a;--ink-3: #6b5d4d;--ink-4: #a89a82;--rule: #e8dfc9;--rule-strong: #cdbf9e;--teal: #0f5257;--teal-deep: #07383c;--teal-tint: #d9e8e6;--amber: #b05610;--amber-tint: #f7e2c2;--forest: #3b6b30;--forest-tint: #dae7cf;--rust: #963023;--rust-tint: #f0d4cd;--sun-red: #b4281a;--sat-blue: #1e4785;--primary: var(--teal);--primary-dark: var(--teal-deep);--accent: var(--amber);--bg: var(--paper);--border: var(--rule);--text: var(--ink);--text-secondary: var(--ink-3);--r-xs: 2px;--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--r-pill: 999px;--radius: var(--r-md);--shadow: 0 0 0 1px rgba(26, 20, 16, .04);--shadow-lift: 0 0 0 1px rgba(26, 20, 16, .06), 0 4px 14px rgba(26, 20, 16, .05)}html{background:var(--paper)}body{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Segoe UI,sans-serif;background:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,rgba(120,100,70,.08) 31px,rgba(120,100,70,.08) 32px),var(--paper);color:var(--ink);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;font-feature-settings:"ss01","ss02","ss03","tnum"}button,input,textarea{font-family:inherit;color:inherit}.container{max-width:640px;margin:0 auto;padding:0 16px 100px}.navbar{position:sticky;top:0;z-index:100;background:var(--paper);border-bottom:1px solid var(--rule);padding:0 16px}.navbar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:56px;padding:8px 0}.navbar-brand{font-weight:800;font-size:17px;color:var(--ink);text-decoration:none;letter-spacing:-.025em;flex-shrink:0}.navbar-group-name{font-size:12px;color:var(--text-secondary);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-tabs{display:flex;gap:4px;align-items:center;height:46px;border-top:1px solid var(--rule);margin:0 -16px;padding:0 10px;background:var(--surface-sunk)}.navbar-tab{padding:5px 14px;height:30px;font-size:13px;font-weight:600;text-decoration:none;color:var(--ink-3);border-radius:var(--r-sm);border:1px solid transparent;display:inline-flex;align-items:center;transition:all .15s;white-space:nowrap}.navbar-tab:hover{color:var(--ink-2)}.navbar-tab.active{color:var(--ink);background:var(--surface);border-color:var(--rule);box-shadow:0 1px 4px #1a14101a;font-weight:700}.navbar-auth{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.navbar-auth .btn{padding:6px 10px;font-size:12px}.navbar-auth .btn-sm{padding:5px 9px;font-size:12px}@media(max-width:480px){.navbar{padding:0 10px}.navbar-tabs{margin:0 -10px;padding:0 10px}.navbar-brand{font-size:14px}.navbar-tab{padding:0 12px;font-size:13px}.navbar-auth{gap:4px}.navbar-auth .btn{padding:5px 8px;font-size:11px}.navbar-auth .btn-sm,.btn-logout{padding:4px 7px;font-size:11px}}.btn-login{background:#fee500;color:#191600;border:none;padding:7px 14px;border-radius:var(--r-sm);font-size:13px;font-weight:700;cursor:pointer}.btn-logout{background:none;border:1px solid var(--rule-strong);padding:6px 10px;border-radius:var(--r-sm);font-size:12px;cursor:pointer;color:var(--ink-3)}.btn-logout:hover{color:var(--ink);border-color:var(--ink-3)}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);margin-bottom:10px;overflow:hidden;transition:box-shadow .15s,transform .15s}.card:hover{box-shadow:var(--shadow-lift)}.card-body{padding:16px 18px}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:var(--r-xs);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.badge-open{background:var(--forest-tint);color:var(--forest)}.badge-closed{background:var(--rust-tint);color:var(--rust)}.badge-waiting{background:var(--amber-tint);color:var(--amber)}.memo-card{position:relative;background:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,rgba(180,160,110,.16) 27px,rgba(180,160,110,.16) 28px),var(--surface);border:1px solid var(--rule-strong);border-radius:3px;margin-bottom:14px;box-shadow:0 1px #1a14100a,0 6px 14px -8px #1a14102e;transition:box-shadow .15s,transform .15s}.memo-card:hover{box-shadow:0 1px #1a14100d,0 10px 20px -8px #1a141038;transform:translateY(-1px)}.memo-card:before{content:"";position:absolute;left:38px;top:0;bottom:0;width:1px;background:#b4281a52;pointer-events:none}.memo-card .memo-body{padding:16px 18px 16px 52px;position:relative}.memo-stamp{position:absolute;top:12px;right:12px;padding:4px 8px 3px;border:2px solid;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.14em;transform:rotate(-7deg);background:#fffdf78c;text-transform:uppercase;pointer-events:none;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.memo-stamp.open{color:var(--forest);border-color:#3b6b30b3}.memo-stamp.closed{width:58px;height:58px;border-radius:50%;border:3.5px solid #b8392a;color:#b8392a;background:transparent;padding:0;display:flex;align-items:center;justify-content:center;font-family:Black Han Sans,Gugi,system-ui,sans-serif;font-size:20px;font-weight:400;letter-spacing:-.06em;-webkit-text-stroke:.4px #b8392a;transform:rotate(-14deg);opacity:.92;text-transform:none;box-shadow:inset 0 0 0 2px #fffdf7e6,inset 0 0 0 3px #b8392a;filter:drop-shadow(.3px 0 0 rgba(184,57,42,.4)) drop-shadow(-.3px .3px 0 rgba(184,57,42,.3))}.memo-stamp.past{color:var(--ink-4);border-color:#a89a82b3}.memo-card.is-past{background:repeating-linear-gradient(to bottom,transparent 0,transparent 27px,rgba(180,160,110,.18) 27px,rgba(180,160,110,.18) 28px),linear-gradient(#dcc89638,#dcc89638),var(--surface);opacity:.92}.memo-card.is-past .memo-body{color:var(--ink-3)}.memo-card.is-pinned{border-color:var(--amber);box-shadow:0 1px #b0561026,0 8px 18px -8px #b0561052}.memo-pin{position:absolute;top:-9px;left:50%;transform:translate(-50%);width:18px;height:18px;z-index:2;pointer-events:none;filter:drop-shadow(0 4px 4px rgba(26,20,16,.35))}.memo-pin:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 35% 28%,#f0a98a,#d05538 30%,#952a1c 70%,#5e1a10);box-shadow:inset -1px -2px 3px #0006,inset 1px 2px 2px #ffffff40,0 0 0 1px #0000002e}.memo-pin:after{content:"";position:absolute;width:5px;height:4px;background:#ffffffbf;border-radius:50%;top:3px;left:4px;filter:blur(.6px)}.memo-divider{border:none;border-top:1px dashed var(--rule-strong);margin:10px 0 8px}.sticky-note{position:relative;padding:16px 18px 14px 22px;margin-bottom:14px;border-radius:1px 2px;box-shadow:0 1px #0000000a,0 6px 14px -6px #1a141047,0 12px 22px -12px #1a141038;font-family:Nanum Ddobak,Gowun Dodum,system-ui,sans-serif;transition:transform .18s ease,box-shadow .18s ease}.sticky-note:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent 0,transparent 24px,rgba(255,255,255,.18) 24px,rgba(255,255,255,.18) 25px),radial-gradient(ellipse at top left,rgba(255,255,255,.4) 0%,transparent 50%);border-radius:inherit;pointer-events:none;mix-blend-mode:soft-light}.sticky-note:after{content:"";position:absolute;bottom:-2px;right:4px;width:60%;height:8px;background:#00000014;filter:blur(4px);border-radius:50%;z-index:-1}.sticky-note:hover{transform:translateY(-1px) rotate(0)!important;box-shadow:0 2px #0000000d,0 10px 20px -8px #1a141052,0 18px 28px -14px #1a141042}.sticky-yellow{background:linear-gradient(135deg,#fff5a8,#ffe680);color:#4a3a10}.sticky-pink{background:linear-gradient(135deg,#ffd4dc,#ffaab8);color:#5a1a28}.sticky-mint{background:linear-gradient(135deg,#c8f5dc,#98ddb8);color:#1a4030}.sticky-sky{background:linear-gradient(135deg,#cfe8ff,#9fc8f0);color:#1a3850}.tilt-1{transform:rotate(-1.4deg)}.tilt-2{transform:rotate(.8deg)}.tilt-3{transform:rotate(-.4deg)}.tilt-4{transform:rotate(1.6deg)}.note-pin{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:14px;height:14px;z-index:2;pointer-events:none;filter:drop-shadow(0 3px 3px rgba(26,20,16,.35))}.note-pin:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 35% 28%,#f0a98a,#d05538 30%,#952a1c 70%,#5e1a10);box-shadow:inset -1px -1px 2px #0006,inset 1px 1px 2px #ffffff40,0 0 0 1px #0000002e}.note-pin:after{content:"";position:absolute;width:4px;height:3px;background:#ffffffbf;border-radius:50%;top:2px;left:3px;filter:blur(.5px)}.sticky-content{position:relative;font-size:22px;line-height:1.5;font-weight:400;font-synthesis:none;-webkit-text-stroke:.5px currentColor;letter-spacing:0;white-space:pre-wrap;z-index:1}.pay-unpaid{color:var(--rust);font-size:12px;font-weight:600}.pay-transferred{color:var(--teal);font-size:12px;font-weight:600}.pay-paid{color:var(--forest);font-size:12px;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:var(--r-sm);font-size:14px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .12s,border-color .12s,transform .08s;letter-spacing:-.01em}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--teal);color:#f8f3e7}.btn-primary:hover:not(:disabled){background:var(--teal-deep)}.btn-danger{background:var(--rust);color:#fff}.btn-outline{background:var(--surface);border:1px solid var(--rule-strong);color:var(--ink);padding:8px 14px;font-size:13px}.btn-outline:hover:not(:disabled){background:var(--paper-2);border-color:var(--ink-3)}.btn-block{width:100%;padding:13px 18px;font-size:15px}.btn-sm{padding:5px 10px;font-size:12px;white-space:nowrap;border-radius:var(--r-xs)}.form-group{margin-bottom:18px}.form-label{display:block;font-size:11px;font-weight:700;color:var(--ink-3);margin-bottom:6px;letter-spacing:.08em;text-transform:uppercase}.form-input{width:100%;padding:10px 12px;border:1px solid var(--rule-strong);background:var(--surface);border-radius:var(--r-sm);font-size:15px;outline:none;transition:border-color .12s,box-shadow .12s;color:var(--ink)}.form-input::placeholder{color:var(--ink-4)}.form-input:focus{border-color:var(--teal);box-shadow:0 0 0 3px #0f525724}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@keyframes calSlideInLeft{0%{transform:translate(40px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes calSlideInRight{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}.cal-slide-left{animation:calSlideInLeft .22s cubic-bezier(.25,.46,.45,.94) both}.cal-slide-right{animation:calSlideInRight .22s cubic-bezier(.25,.46,.45,.94) both}.cal-body{overflow:hidden}.calendar{position:relative;background:var(--surface);border:1px solid var(--rule-strong);border-radius:3px;box-shadow:0 1px #1a14100a,0 6px 14px -8px #1a14102e,0 14px 24px -14px #1a141038}.cal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px 12px;border-bottom:1px dashed var(--rule-strong);background:transparent;position:relative}.cal-header h2{font-family:Nanum Ddobak,system-ui,sans-serif;font-size:26px;font-weight:400;letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--ink);-webkit-text-stroke:.5px var(--ink)}.cal-nav{background:transparent;border:1.5px dashed var(--rule-strong);font-size:18px;cursor:pointer;padding:0;border-radius:50%;color:var(--ink-2);font-weight:700;width:32px;height:32px;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s,transform .12s;font-family:system-ui,-apple-system,sans-serif}.cal-nav:hover{background:var(--paper-2);color:var(--rust);transform:scale(1.08)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);background:transparent}.cal-weekday{text-align:center;padding:10px 0 8px;font-family:Nanum Ddobak,system-ui,sans-serif;font-size:16px;font-weight:400;letter-spacing:.02em;color:var(--ink-3);border-bottom:1px solid var(--rule);-webkit-text-stroke:.3px currentColor}.cal-week{display:grid;grid-template-columns:repeat(7,1fr);position:relative;background-image:linear-gradient(#b4a06e38,#b4a06e38),linear-gradient(#b4a06e38,#b4a06e38),linear-gradient(#b4a06e38,#b4a06e38),linear-gradient(#b4a06e38,#b4a06e38),linear-gradient(#b4a06e38,#b4a06e38),linear-gradient(#b4a06e38,#b4a06e38);background-size:1px 100%;background-position:calc(100% * 1 / 7) 0,calc(100% * 2 / 7) 0,calc(100% * 3 / 7) 0,calc(100% * 4 / 7) 0,calc(100% * 5 / 7) 0,calc(100% * 6 / 7) 0;background-repeat:no-repeat;border-top:1px solid var(--rule)}.cal-day-num{min-height:62px;padding:4px 3px 3px;cursor:pointer;transition:background .12s;display:flex;flex-direction:column;align-items:center;min-width:0;position:relative}.cal-day-num:hover{background:#b4a06e14}.cal-day-num.other-month{cursor:default;background:transparent;opacity:.25}.cal-date-wrap{width:26px;height:26px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%;position:relative}.cal-date{font-family:Nanum Ddobak,system-ui,sans-serif;font-size:19px;font-weight:400;line-height:1;font-variant-numeric:tabular-nums;-webkit-text-stroke:.4px currentColor}.cal-chip{width:calc(100% - 4px);min-width:0;margin:2px 2px 0;font-size:11px;font-weight:700;padding:2px 6px;border-radius:1px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;line-height:1.4;letter-spacing:-.01em;box-shadow:0 1px #0000000f,0 2px 3px -2px #1a14102e;transform:rotate(-.6deg)}.cal-day-num:nth-child(2n) .cal-chip{transform:rotate(.6deg)}.cal-strip{height:20px;margin:1px 0;font-size:11px;font-weight:700;padding:0 7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;display:flex;align-items:center;align-self:center;border-radius:1px 2px;letter-spacing:-.01em;box-shadow:0 1px #0000000f,0 2px 3px -2px #1a14102e}.cal-event-open{background:linear-gradient(135deg,#e6f0d8,#cde0b3);color:#2d5024;border:1px solid rgba(59,107,48,.25)}.cal-event-closed{background:linear-gradient(135deg,#f5d8d2,#e8b3a8);color:#6e1f15;border:1px solid rgba(150,48,35,.3);text-decoration:line-through;text-decoration-thickness:1px}.attendee-item{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--rule);gap:12px}.attendee-item:last-child{border-bottom:none}.attendee-name{font-weight:600;font-size:14px}.attendee-meta{font-size:12px;color:var(--ink-3);margin-top:2px}.attendee-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.section-title{font-size:11px;font-weight:800;color:var(--ink-4);margin:20px 0 10px;text-transform:uppercase;letter-spacing:.14em}.info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--rule);gap:12px;font-size:14px}.info-row:last-child{border-bottom:none}.info-label{color:var(--ink-3);flex-shrink:0}.info-value{font-weight:500;text-align:right}.fab{position:fixed;bottom:20px;right:20px;width:52px;height:52px;border-radius:var(--r-md);background:var(--amber);color:#fff8ea;border:none;font-size:28px;font-weight:300;cursor:pointer;box-shadow:0 10px 24px #b0561047,inset 0 1px #fff3;display:flex;align-items:center;justify-content:center;text-decoration:none;line-height:1;transition:transform .15s,box-shadow .15s}.fab:hover{transform:translateY(-2px);box-shadow:0 14px 30px #b0561052,inset 0 1px #fff3}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 56px);text-align:center;gap:14px;padding:20px}.login-page h1{font-size:32px;letter-spacing:-.03em;font-weight:800}.login-page p{color:var(--ink-3);font-size:15px;max-width:320px}.btn-kakao{background:#fee500;color:#191600;border:none;padding:14px 28px;border-radius:var(--r-sm);font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:0 6px 16px #fee50059}.status-bar{display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);padding:14px 10px;margin-bottom:16px}.status-item{text-align:center;position:relative}.status-item+.status-item{border-left:1px solid var(--rule)}.status-num{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;line-height:1.1}.status-label{font-size:10px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-top:4px}.empty{text-align:center;padding:48px 16px;color:var(--ink-3)}.empty-icon{font-size:36px;margin-bottom:12px;opacity:.5}.info-chip{display:inline-flex;align-items:center;padding:3px 8px;border-radius:var(--r-xs);font-size:11px;font-weight:600;letter-spacing:-.01em}.chip-default{background:var(--surface-sunk);color:var(--ink-2);border:1px solid var(--rule)}.chip-joGeum{background:var(--forest-tint);color:var(--forest);border:1px solid rgba(59,107,48,.25)}.chip-sari{background:var(--amber-tint);color:var(--amber);border:1px solid rgba(176,86,16,.25)}.filter-bar{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto;padding:4px 0 6px}.filter-chip{white-space:nowrap;padding:6px 13px;border-radius:var(--r-pill);border:1px solid var(--rule-strong);background:var(--surface);font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:all .12s}.filter-chip:hover{color:var(--teal);border-color:var(--teal)}.filter-chip.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}@media(max-width:480px){.form-row{grid-template-columns:1fr}.card-body{padding:14px}}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-track:hover{animation-play-state:paused}.rte-shell{display:flex;flex-direction:column;border:1px solid var(--rule-strong);border-radius:4px;background:var(--surface);overflow:hidden}.rte-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;background:var(--surface-sunk);border-bottom:1px solid var(--rule)}.rte-btn{min-width:28px;height:28px;padding:0 8px;font-size:13px;font-weight:700;background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;color:var(--ink-2);line-height:1}.rte-btn:hover{background:#0000000a;color:var(--ink)}.rte-btn.is-active{background:var(--ink);color:var(--surface)}.rte-size-group{display:inline-flex;align-items:center;gap:4px}.rte-divider{width:1px;height:18px;margin:0 4px;background:var(--rule-strong);display:inline-block}.rte-canvas{padding:12px 14px}.rte-canvas .ProseMirror{outline:none;font-size:14px;line-height:1.65;color:var(--ink-1);min-height:inherit}.rte-canvas .ProseMirror p{margin:0 0 .6em}.rte-canvas .ProseMirror h3{font-size:17px;font-weight:700;margin:.6em 0 .4em;color:var(--ink)}.rte-canvas .ProseMirror ul,.rte-canvas .ProseMirror ol{padding-left:22px;margin:0 0 .6em}.rte-canvas .ProseMirror li{margin:.15em 0}.rte-canvas .ProseMirror blockquote{border-left:3px solid var(--rule-strong);padding-left:10px;color:var(--ink-3);margin:0 0 .6em}.rte-canvas .ProseMirror .react-renderer.node-image{display:contents!important}.rte-canvas .ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);color:var(--ink-4);float:left;height:0;pointer-events:none}.rte-image-node{display:inline-block;margin:.3em 4px;max-width:100%;position:relative;vertical-align:top;line-height:0}.rte-image-frame{display:block;position:relative;width:100%;line-height:0}.rte-image-frame img{display:block;width:100%;height:auto;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;margin:0}.rte-image-node.is-selected .rte-image-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;outline:2px solid var(--rust);outline-offset:2px;pointer-events:none;border-radius:4px}.rte-image-handle{position:absolute;width:12px;height:12px;background:#fff;border:2px solid var(--rust);border-radius:50%;z-index:2;box-shadow:0 1px 3px #00000040}.rte-image-handle-tl{top:-6px;left:-6px;cursor:nwse-resize}.rte-image-handle-tr{top:-6px;right:-6px;cursor:nesw-resize}.rte-image-handle-bl{bottom:-6px;left:-6px;cursor:nesw-resize}.rte-image-handle-br{bottom:-6px;right:-6px;cursor:nwse-resize}.rte-rendered{font-size:14px;line-height:1.65;color:var(--ink-1)}.rte-rendered p{margin:0 0 .6em}.rte-rendered p:last-child{margin-bottom:0}.rte-rendered h3{font-size:17px;font-weight:700;margin:.5em 0 .3em;color:var(--ink)}.rte-rendered ul,.rte-rendered ol{padding-left:22px;margin:0 0 .6em}.rte-rendered blockquote{border-left:3px solid var(--rule-strong);padding-left:10px;color:var(--ink-3);margin:0 0 .6em}.rte-rendered img{max-width:100%;height:auto;border-radius:4px;display:inline-block;vertical-align:top;margin:.3em 4px}.review-section{margin-top:20px}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.review-header h3{font-size:16px;font-weight:700;margin:0;color:var(--ink)}.review-count{display:inline-block;margin-left:4px;padding:1px 7px;font-size:12px;font-weight:700;color:var(--ink-2);background:var(--surface-sunk);border-radius:999px}.review-empty{text-align:center;font-size:13px;color:var(--text-secondary);padding:24px 0}.review-modal-title{margin:0;font-size:15px;font-weight:700;color:var(--ink)}.review-modal-compose{max-width:720px}.review-modal-compose .review-modal-body{padding:14px}.review-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.review-list>li{margin:0}.review-row{width:100%;display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--rule);border-radius:8px;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background .12s ease,border-color .12s ease,transform 80ms ease}.review-row:hover{background:var(--surface-sunk);border-color:var(--rule-strong)}.review-row:active{transform:translateY(1px)}.review-row:focus-visible{outline:2px solid var(--rust);outline-offset:2px}.review-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--surface-sunk);flex-shrink:0}.review-avatar-placeholder{display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:var(--ink-3)}.review-row-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.review-row-top{display:flex;align-items:baseline;gap:8px;min-width:0}.review-author{display:flex;align-items:center;gap:8px;min-width:0}.review-author-name{font-size:13px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-date{font-size:11px;color:var(--ink-4);flex-shrink:0}.review-row-snippet{font-size:13px;color:var(--ink-2);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-row-badge{flex-shrink:0;font-size:11px;font-weight:700;color:var(--rust);background:var(--rust-tint);padding:2px 8px;border-radius:999px}.review-row-chev{flex-shrink:0;font-size:18px;color:var(--ink-4);line-height:1}.review-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1414188c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000;animation:review-fade-in .14s ease}@keyframes review-fade-in{0%{opacity:0}to{opacity:1}}.review-modal{width:100%;max-width:640px;max-height:calc(100vh - 32px);background:var(--surface);border:1px solid var(--rule-strong);border-radius:12px;box-shadow:0 20px 50px -20px #00000073;display:flex;flex-direction:column;overflow:hidden;animation:review-pop-in .16s cubic-bezier(.16,1,.3,1)}@keyframes review-pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.review-modal-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border-bottom:1px solid var(--rule);background:var(--surface)}.review-modal-body{padding:14px;overflow-y:auto;flex:1 1 auto;word-break:break-word}.review-modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:10px 14px;border-top:1px solid var(--rule);background:var(--surface-sunk)}
