.notif-wrap[data-v-0c67b00e]{position:relative}.bell[data-v-0c67b00e]{position:relative;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:16px;background:transparent}.bell[data-v-0c67b00e]:hover{background:#2629220d}.bell-badge[data-v-0c67b00e]{position:absolute;top:2px;right:3px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#df5148;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}.notif-panel[data-v-0c67b00e]{position:absolute;right:0;top:46px;z-index:60;width:320px;max-height:420px;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.notif-head[data-v-0c67b00e]{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--surface)}.notif-close[data-v-0c67b00e]{color:var(--text-3);font-size:15px}.notif-empty[data-v-0c67b00e]{padding:28px 14px;text-align:center;color:var(--text-3);font-size:12px}.notif-panel ul[data-v-0c67b00e]{list-style:none;margin:0;padding:0}.notif-panel li[data-v-0c67b00e]{padding:12px 14px;border-bottom:1px solid #f0ede6;border-left:3px solid transparent}.notif-panel li[data-v-0c67b00e]:last-child{border-bottom:0}.notif-panel li.lv-success[data-v-0c67b00e]{border-left-color:#317257}.notif-panel li.lv-error[data-v-0c67b00e]{border-left-color:#b84f3c}.notif-panel li.lv-info[data-v-0c67b00e]{border-left-color:#5b6cff}.notif-title[data-v-0c67b00e]{font-size:13px;font-weight:650}.notif-content[data-v-0c67b00e]{margin-top:3px;color:var(--text-2);font-size:12px;line-height:1.55}.notif-panel small[data-v-0c67b00e]{display:block;margin-top:4px;color:var(--text-3);font-size:10px}:root{color-scheme:light;--bg: #f3f1eb;--bg-soft: #ebe8df;--bg-hover: #e7e4da;--surface: #fffdf8;--border: #e4dfd4;--text: #262922;--text-2: #6e7066;--text-3: #929287;--accent: #28624f;--accent-weak: #e7efe8;--accent-hover: #1f503f;--green: #317257;--red: #b84f3c;--amber: #a86d2f;--radius: 16px;--radius-sm: 10px;--shadow: 0 2px 8px rgba(49, 43, 31, .045), 0 12px 30px rgba(49, 43, 31, .055);--shadow-lg: 0 24px 70px rgba(33, 31, 25, .18);--font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif}*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font:inherit;color:var(--text)}img{display:block;max-width:100%}::selection{color:#fffdf8;background:#28624f}:focus-visible{outline:3px solid rgba(40,98,79,.32);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 17px;border-radius:11px;font-weight:600;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--text);color:var(--surface)}.btn-primary:hover{background:#3b4037;color:var(--surface)}.btn-accent{background:var(--accent);color:#fff;box-shadow:0 4px 10px #28624f24}.btn-accent:hover{background:var(--accent-hover);color:#fff;box-shadow:0 6px 16px #28624f33}.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:#f7f4ed;border-color:#cfc8bb}.btn-soft{background:var(--accent-weak);color:var(--accent)}.btn-soft:hover{background:#dce9de}.btn-danger{background:transparent;color:var(--red);border:1px solid #e8c9c0}.btn-danger:hover{background:#fbefeb}.btn[disabled]{opacity:.48;cursor:not-allowed;box-shadow:none}.btn-lg{min-height:48px;padding:0 23px;font-size:15px;border-radius:12px}.btn-icon{width:40px;padding:0}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.field label{font-size:13px;font-weight:650;color:var(--text)}.input,.textarea,.select{width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--border);border-radius:11px;outline:none;transition:border-color .16s,box-shadow .16s,background .16s;background:var(--surface)}.textarea{resize:vertical;min-height:104px;line-height:1.65}.input::placeholder,.textarea::placeholder{color:#a4a195}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #28624f1f}.input:disabled,.select:disabled{background:var(--bg-soft);color:var(--text-3)}.hint{font-size:12px;color:var(--text-3)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.card-shadow{box-shadow:var(--shadow);border:1px solid rgba(228,223,212,.72)}.page{width:min(1240px,100%);margin:0 auto;padding:48px 32px 76px}.page-title{font-family:var(--font-display);font-size:clamp(32px,4vw,46px);line-height:1.08;font-weight:500;letter-spacing:-.035em;margin:0 0 9px}.page-sub{max-width:700px;color:var(--text-2);font-size:14px;margin:0 0 30px}.topnav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:30px;height:68px;padding:0 clamp(18px,4vw,54px);background:#faf8f2ed;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(219,214,203,.8)}.topnav .logo{color:var(--text);font-family:var(--font-display);font-size:19px;font-weight:700;display:flex;align-items:center;gap:10px;white-space:nowrap}.topnav .logo .dot,.logo-row .dot{width:31px;height:31px;border-radius:10px;background:var(--accent);color:#f8f4e9;display:grid;place-items:center;font-family:sans-serif;font-size:15px;box-shadow:0 4px 9px #28624f33}.topnav nav{display:flex;align-items:center;gap:4px}.topnav nav a{padding:8px 12px;border-radius:9px;color:var(--text-2);font-size:13px;font-weight:550;transition:.18s}.topnav nav a:hover{color:var(--text);background:#2629220b}.topnav nav a.router-link-active{color:var(--accent);background:var(--accent-weak)}.topnav .spacer{flex:1}.topnav .avatar{width:36px;height:36px;border-radius:50%;background:#e9e2d3;color:#635f50;display:grid;place-items:center;font-weight:700;border:1px solid #ddd4c4}.topnav .btn{border-radius:999px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;border-radius:999px;background:var(--accent-weak);color:var(--accent);font-weight:650}.badge-gray{background:#efede7;color:var(--text-2)}.badge-green{background:#e6f1e9;color:var(--green)}.badge-red{background:#faece8;color:var(--red)}.badge-amber{background:#f5ecdf;color:var(--amber)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:34px;padding:5px 13px;border-radius:999px;border:1px solid #ded9ce;color:var(--text-2);font-size:13px;transition:.16s;background:#fffdf8ad}.chip:hover{border-color:#9db4a5;color:var(--accent)}.chip.active{background:var(--text);color:#fffdf8;border-color:var(--text)}.grid{display:grid;gap:20px}.grid-4{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.thumb{position:relative;border-radius:15px;overflow:hidden;background:var(--surface);border:1px solid rgba(219,214,203,.9);cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.thumb:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#d5cdbd}.thumb img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--bg-soft);transition:transform .45s cubic-bezier(.2,.7,.2,1)}.thumb:hover img{transform:scale(1.025)}.thumb .meta{padding:13px 15px 15px;font-size:14px;font-weight:600;color:var(--text);background:var(--surface)}.thumb .meta small{display:block;margin-top:4px;color:var(--text-3);font-size:12px;font-weight:450}.thumb .actions{position:absolute;top:10px;right:10px;display:flex;gap:7px;opacity:0;transform:translateY(-3px);transition:.18s}.thumb:hover .actions,.thumb:focus-within .actions{opacity:1;transform:translateY(0)}.thumb .actions button{width:34px;height:34px;border-radius:10px;background:#fffdf8f0;color:var(--text);display:grid;place-items:center;box-shadow:0 2px 8px #14140f1f;font-size:14px}.thumb .actions button:hover{background:var(--accent);color:#fff}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#23231d7a;z-index:100;display:grid;place-items:center;padding:24px;animation:fade .18s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--surface);border:1px solid rgba(255,255,255,.55);border-radius:20px;max-width:960px;width:100%;max-height:88vh;overflow:auto;box-shadow:var(--shadow-lg);animation:up .22s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px 0}.modal-head h3{margin:0;font-family:var(--font-display);font-size:22px;font-weight:600}.modal-body{padding:20px 26px 26px}@keyframes fade{0%{opacity:0}}@keyframes up{0%{opacity:0;transform:translateY(12px)}}.empty{text-align:center;color:var(--text-3);padding:76px 0}.empty .big{font-size:42px;margin-bottom:10px;filter:saturate(.75)}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%);background:#292d26;color:#fffdf8;padding:11px 18px;border-radius:999px;font-size:13px;z-index:200;animation:up .2s ease;box-shadow:var(--shadow-lg)}table{border-collapse:collapse}th{color:var(--text-3);font-weight:600}@media(max-width:900px){.topnav{gap:14px}.topnav nav{gap:0}.topnav nav a{padding:8px 9px}.page{padding:36px 22px 56px}}@media(max-width:680px){.topnav{height:auto;min-height:62px;flex-wrap:wrap;gap:10px;padding:10px 14px}.topnav .logo{font-size:17px}.topnav .logo .dot{width:28px;height:28px}.topnav nav{order:3;width:100%;overflow-x:auto;white-space:nowrap;padding-bottom:1px}.topnav nav a{padding:7px 10px}.topnav .spacer{flex:1}.topnav .btn{min-height:34px;padding:0 12px;font-size:12px!important}.topnav .badge{font-size:11px}.page{padding:30px 16px 48px}.page-sub{margin-bottom:24px}.grid{gap:13px}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.thumb .meta{padding:10px 11px 12px;font-size:13px}.thumb .actions{opacity:1;transform:none}.modal-mask{padding:12px}.modal-head{padding:18px 18px 0}.modal-body{padding:16px 18px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
