From 3d4d5e5cefb514567779557307d5f1dc47a844ab Mon Sep 17 00:00:00 2001 From: novgorodschi catalin Date: Fri, 17 Jul 2026 08:24:13 +0300 Subject: [PATCH] Fix Command Center Capital Change #329 Fix Command Center Capital Change #329 , Fix forum units, fix trooplist on raidlist, --- Admin/Templates/admin_log.tpl | 108 ++++++++++---------- Admin/Templates/home.tpl | 142 ++++++++------------------ Admin/admin.php | 2 +- Templates/Alliance/Forum/forum_10.tpl | 130 +++-------------------- Templates/Alliance/Forum/forum_5.tpl | 13 ++- Templates/Alliance/Forum/forum_7.tpl | 13 ++- Templates/Alliance/Forum/forum_9.tpl | 13 ++- Templates/Build/26.tpl | 2 +- Templates/Build/31.tpl | 1 + Templates/Build/32.tpl | 1 + Templates/Build/33.tpl | 1 + Templates/Build/42.tpl | 1 + Templates/Build/43.tpl | 1 + Templates/Build/44.tpl | 90 ++++++++++++++-- Templates/Build/47.tpl | 1 + Templates/Build/50.tpl | 1 + Templates/goldClub/trooplist.tpl | 6 +- img/admin/admin_dark.css | 65 ++++++++++++ 18 files changed, 311 insertions(+), 280 deletions(-) create mode 100644 img/admin/admin_dark.css diff --git a/Admin/Templates/admin_log.tpl b/Admin/Templates/admin_log.tpl index 986dbc45..bb54538c 100644 --- a/Admin/Templates/admin_log.tpl +++ b/Admin/Templates/admin_log.tpl @@ -10,28 +10,33 @@ $a['time']; }); $unified = array_slice($unified, 0, 300); + +// Server-side category filter (applies across ALL entries, not just current page) +$catFilter = isset($_GET['cat']) ? strtoupper(preg_replace('/[^A-Za-z]/','',$_GET['cat'])) : 'ALL'; +if ($catFilter !== '' && $catFilter !== 'ALL') { + $unified = array_values(array_filter($unified, function($e) use ($catFilter) { + $c = logCategory($e); return $c[0] === $catFilter; + })); +} + $perPage = 20; $page = isset($_GET['pg']) ? max(1,intval($_GET['pg'])) : 1; $total = count($unified); @@ -135,19 +149,24 @@ function logCategory($entry) {
- - - - - - - - - - + 'All','BAN'=>'πŸ”¨ Ban','UNBAN'=>'πŸ”“ Unban','GOLD'=>'πŸ’° Gold', + 'PLUS'=>'⭐ Plus','BONUS'=>'πŸ“ˆ Bonus','VILLAGE'=>'🏘 Village', + 'MESSAGE'=>'βœ‰ Message','RESET'=>'βš™ Reset','OTHER'=>'πŸ“ Other' + ]; + $curCat = ($catFilter === '' ? 'ALL' : $catFilter); + foreach ($cats as $key=>$label): + $isAll = ($key === 'all'); + $active = ($isAll && $curCat === 'ALL') || (!$isAll && $curCat === $key); + $href = 'admin.php?p=admin_log' . ($isAll ? '' : '&cat=' . $key); + ?> + +
+
@@ -180,27 +199,12 @@ foreach($paged as $e) {
-
-1){ ?>Β« Prev - / -Next Β» +
+ +
+1){ ?>Β« Prev + / +Next Β»
- - \ No newline at end of file diff --git a/Admin/Templates/home.tpl b/Admin/Templates/home.tpl index 25849265..c014ab32 100644 --- a/Admin/Templates/home.tpl +++ b/Admin/Templates/home.tpl @@ -54,114 +54,62 @@ $plansStatus = $plans > 0 ? "Launched ($plans) - ".($plansDate ? date('d.m.Y',$p $role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter'; ?>
@@ -178,7 +126,7 @@ $role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';

Active Bans

Last Registration

ID #

PHP / MySQL

dblink->server_info; ?>
-

Server Load

Uptime:
+

Server Clock

Uptime:
diff --git a/Admin/admin.php b/Admin/admin.php index f8b7812b..26b62c73 100644 --- a/Admin/admin.php +++ b/Admin/admin.php @@ -887,8 +887,8 @@ body.app #menu li.sub ul li a:hover{color:#d97706!important}
  • Admin
  • - <?php echo U1; ?><?php echo U2; ?><?php echo U3; ?><?php echo U4; ?><?php echo U5; ?><?php echo U6; ?><?php echo U17; ?><?php echo U8; ?><?php echo U9; ?><?php echo U10; ?><?php echo TZ_MACEMAN; ?><?php echo U12; ?><?php echo U13; ?><?php echo U14; ?><?php echo U15; ?><?php echo U16; ?><?php echo U17; ?><?php echo U18; ?><?php echo U29; ?><?php echo U10; ?><?php echo U21; ?><?php echo U22; ?><?php echo U23; ?><?php echo U24; ?><?php echo U25; ?><?php echo U26; ?><?php echo U7; ?><?php echo U28; ?><?php echo U19; ?><?php echo U10; ?><?php echo U31; ?><?php echo U32; ?><?php echo U33; ?><?php echo U34; ?><?php echo U35; ?><?php echo U36; ?><?php echo U37; ?><?php echo U38; ?><?php echo U39; ?><?php echo U40; ?><?php echo U41; ?><?php echo U42; ?><?php echo U43; ?><?php echo U44; ?><?php echo U45; ?><?php echo U46; ?><?php echo U47; ?><?php echo U48; ?><?php echo U49; ?><?php echo U10; ?><?php echo U0; ?> + 'NEW_FUNCTION_TRIBE_HUNS',7=>'NEW_FUNCTION_TRIBE_EGIPTEANS',8=>'NEW_FUNCTION_TRIBE_SPARTANS',9=>'NEW_FUNCTION_TRIBE_VIKINGS']; +for($__u=1;$__u<=90;$__u++){ + if($__u>50){ + $__tr=intdiv($__u-1,10)+1; + if(!isset($__tribeFlags[$__tr])||!defined($__tribeFlags[$__tr])||!constant($__tribeFlags[$__tr])) continue; + } + $__nm=defined('U'.$__u)?constant('U'.$__u):''; + echo ''.$__nm.''; +} +?><?php echo U0; ?>
    diff --git a/Templates/Alliance/Forum/forum_5.tpl b/Templates/Alliance/Forum/forum_5.tpl index 1522aa8f..baed6931 100644 --- a/Templates/Alliance/Forum/forum_5.tpl +++ b/Templates/Alliance/Forum/forum_5.tpl @@ -58,7 +58,18 @@ if($forumData['forum_area'] == 3 && !$opt['opt5']) $alliance->redirect($_GET); <?php echo IRON; ?> <?php echo CROP; ?>
    *aha**angry**cool**cry**cute**depressed**eek**ehem**emotional*:D:)*hit**hmm**hmpf**hrhr**huh**lazy**love**nocomment**noemotion**notamused**pout**redface**rolleyes*:(*shy**smile**tongue**veryangry**veryhappy*;)
    -
    <?php echo U1; ?><?php echo U2; ?><?php echo U3; ?><?php echo U4; ?><?php echo U5; ?><?php echo U6; ?><?php echo U17; ?><?php echo U8; ?><?php echo U9; ?><?php echo U10; ?><?php echo TZ_MACEMAN; ?><?php echo U12; ?><?php echo U13; ?><?php echo U14; ?><?php echo U15; ?><?php echo U16; ?><?php echo U17; ?><?php echo U18; ?><?php echo U29; ?><?php echo U10; ?><?php echo U21; ?><?php echo U22; ?><?php echo U23; ?><?php echo U24; ?><?php echo U25; ?><?php echo U26; ?><?php echo U7; ?><?php echo U28; ?><?php echo U19; ?><?php echo U10; ?><?php echo U31; ?><?php echo U32; ?><?php echo U33; ?><?php echo U34; ?><?php echo U35; ?><?php echo U36; ?><?php echo U37; ?><?php echo U38; ?><?php echo U39; ?><?php echo U40; ?><?php echo U41; ?><?php echo U42; ?><?php echo U43; ?><?php echo U44; ?><?php echo U45; ?><?php echo U46; ?><?php echo U47; ?><?php echo U48; ?><?php echo U49; ?><?php echo U10; ?><?php echo U0; ?>
    +
    'NEW_FUNCTION_TRIBE_HUNS',7=>'NEW_FUNCTION_TRIBE_EGIPTEANS',8=>'NEW_FUNCTION_TRIBE_SPARTANS',9=>'NEW_FUNCTION_TRIBE_VIKINGS']; +for($__u=1;$__u<=90;$__u++){ + if($__u>50){ + $__tr=intdiv($__u-1,10)+1; + if(!isset($__tribeFlags[$__tr])||!defined($__tribeFlags[$__tr])||!constant($__tribeFlags[$__tr])) continue; + } + $__nm=defined('U'.$__u)?constant('U'.$__u):''; + echo ''.$__nm.''; +} +?><?php echo U0; ?>
    diff --git a/Templates/Alliance/Forum/forum_7.tpl b/Templates/Alliance/Forum/forum_7.tpl index b4366881..d3e7489a 100644 --- a/Templates/Alliance/Forum/forum_7.tpl +++ b/Templates/Alliance/Forum/forum_7.tpl @@ -55,7 +55,18 @@ $title = stripslashes($topic['title']); <?php echo IRON; ?> <?php echo CROP; ?>
    *aha**angry**cool**cry**cute**depressed**eek**ehem**emotional*:D:)*hit**hmm**hmpf**hrhr**huh**lazy**love**nocomment**noemotion**notamused**pout**redface**rolleyes*:(*shy**smile**tongue**veryangry**veryhappy*;)
    -
    <?php echo U1; ?><?php echo U2; ?><?php echo U3; ?><?php echo U4; ?><?php echo U5; ?><?php echo U6; ?><?php echo U17; ?><?php echo U8; ?><?php echo U9; ?><?php echo U10; ?><?php echo TZ_MACEMAN; ?><?php echo U12; ?><?php echo U13; ?><?php echo U14; ?><?php echo U15; ?><?php echo U16; ?><?php echo U17; ?><?php echo U18; ?><?php echo U29; ?><?php echo U10; ?><?php echo U21; ?><?php echo U22; ?><?php echo U23; ?><?php echo U24; ?><?php echo U25; ?><?php echo U26; ?><?php echo U7; ?><?php echo U28; ?><?php echo U19; ?><?php echo U10; ?><?php echo U31; ?><?php echo U32; ?><?php echo U33; ?><?php echo U34; ?><?php echo U35; ?><?php echo U36; ?><?php echo U37; ?><?php echo U38; ?><?php echo U39; ?><?php echo U40; ?><?php echo U41; ?><?php echo U42; ?><?php echo U43; ?><?php echo U44; ?><?php echo U45; ?><?php echo U46; ?><?php echo U47; ?><?php echo U48; ?><?php echo U49; ?><?php echo U10; ?><?php echo U0; ?>
    +
    'NEW_FUNCTION_TRIBE_HUNS',7=>'NEW_FUNCTION_TRIBE_EGIPTEANS',8=>'NEW_FUNCTION_TRIBE_SPARTANS',9=>'NEW_FUNCTION_TRIBE_VIKINGS']; +for($__u=1;$__u<=90;$__u++){ + if($__u>50){ + $__tr=intdiv($__u-1,10)+1; + if(!isset($__tribeFlags[$__tr])||!defined($__tribeFlags[$__tr])||!constant($__tribeFlags[$__tr])) continue; + } + $__nm=defined('U'.$__u)?constant('U'.$__u):''; + echo ''.$__nm.''; +} +?><?php echo U0; ?>
    diff --git a/Templates/Alliance/Forum/forum_9.tpl b/Templates/Alliance/Forum/forum_9.tpl index 14a8c630..340223b7 100644 --- a/Templates/Alliance/Forum/forum_9.tpl +++ b/Templates/Alliance/Forum/forum_9.tpl @@ -57,7 +57,18 @@ foreach($topics as $top) { <?php echo IRON; ?> <?php echo CROP; ?>
    *aha**angry**cool**cry**cute**depressed**eek**ehem**emotional*:D:)*hit**hmm**hmpf**hrhr**huh**lazy**love**nocomment**noemotion**notamused**pout**redface**rolleyes*:(*shy**smile**tongue**veryangry**veryhappy*;)
    -
    <?php echo U1; ?><?php echo U2; ?><?php echo U3; ?><?php echo U4; ?><?php echo U5; ?><?php echo U6; ?><?php echo U17; ?><?php echo U8; ?><?php echo U9; ?><?php echo U10; ?><?php echo TZ_MACEMAN; ?><?php echo U12; ?><?php echo U13; ?><?php echo U14; ?><?php echo U15; ?><?php echo U16; ?><?php echo U17; ?><?php echo U18; ?><?php echo U29; ?><?php echo U10; ?><?php echo U21; ?><?php echo U22; ?><?php echo U23; ?><?php echo U24; ?><?php echo U25; ?><?php echo U26; ?><?php echo U7; ?><?php echo U28; ?><?php echo U19; ?><?php echo U10; ?><?php echo U31; ?><?php echo U32; ?><?php echo U33; ?><?php echo U34; ?><?php echo U35; ?><?php echo U36; ?><?php echo U37; ?><?php echo U38; ?><?php echo U39; ?><?php echo U40; ?><?php echo U41; ?><?php echo U42; ?><?php echo U43; ?><?php echo U44; ?><?php echo U45; ?><?php echo U46; ?><?php echo U47; ?><?php echo U48; ?><?php echo U49; ?><?php echo U10; ?><?php echo U0; ?>
    +
    'NEW_FUNCTION_TRIBE_HUNS',7=>'NEW_FUNCTION_TRIBE_EGIPTEANS',8=>'NEW_FUNCTION_TRIBE_SPARTANS',9=>'NEW_FUNCTION_TRIBE_VIKINGS']; +for($__u=1;$__u<=90;$__u++){ + if($__u>50){ + $__tr=intdiv($__u-1,10)+1; + if(!isset($__tribeFlags[$__tr])||!defined($__tribeFlags[$__tr])||!constant($__tribeFlags[$__tr])) continue; + } + $__nm=defined('U'.$__u)?constant('U'.$__u):''; + echo ''.$__nm.''; +} +?><?php echo U0; ?>
    diff --git a/Templates/Build/26.tpl b/Templates/Build/26.tpl index ff6ef064..2a3f88a5 100644 --- a/Templates/Build/26.tpl +++ b/Templates/Build/26.tpl @@ -55,7 +55,7 @@ if($_POST && $_GET['action'] == 'change_capital' && !$village->capital){ } } // 3. DELETE CAPITAL-SPECIFIC BUILDINGS FROM THE NEW CAPITAL - $capitalOnly = [29,30,38,39,42]; + $capitalOnly = [29,30,38,39,49]; // Great Workshop mutat de la 42 la 49 for($i = 19; $i <= 40; ++$i){ if(in_array((int)$data3['f'.$i.'t'], $capitalOnly)){ mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.$newWid); diff --git a/Templates/Build/31.tpl b/Templates/Build/31.tpl index f66d045c..6cb5909f 100644 --- a/Templates/Build/31.tpl +++ b/Templates/Build/31.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid31[$level]['attri'] : 0; ?>
    + <?php echo CITYWALL;?>

    diff --git a/Templates/Build/32.tpl b/Templates/Build/32.tpl index 73b00a4b..6d7bee39 100644 --- a/Templates/Build/32.tpl +++ b/Templates/Build/32.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid32[$level]['attri'] : 0; ?>
    + <?php echo EARTHWALL;?>

    diff --git a/Templates/Build/33.tpl b/Templates/Build/33.tpl index aee864ae..a09c1593 100644 --- a/Templates/Build/33.tpl +++ b/Templates/Build/33.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid33[$level]['attri'] : 0; ?>
    + <?php echo PALISADE;?>

    diff --git a/Templates/Build/42.tpl b/Templates/Build/42.tpl index 0e3b4bcb..766d2693 100644 --- a/Templates/Build/42.tpl +++ b/Templates/Build/42.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid42[$level]['attri'] : 0; ?>
    + <?php echo STONEWALL;?>

    diff --git a/Templates/Build/43.tpl b/Templates/Build/43.tpl index 9435557a..577cbffa 100644 --- a/Templates/Build/43.tpl +++ b/Templates/Build/43.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid43[$level]['attri'] : 0; ?>
    + <?php echo MAKESHIFTWALL;?>

    diff --git a/Templates/Build/44.tpl b/Templates/Build/44.tpl index 8cce6a24..c270b231 100644 --- a/Templates/Build/44.tpl +++ b/Templates/Build/44.tpl @@ -7,7 +7,7 @@ ## Type : BUILDING TEMPLATE ## ## --------------------------------------------------------------------------- ## ## Created by : Shadow ## -## Designed by : Shadow ## +## Developed by : Shadow ## ## --------------------------------------------------------------------------- ## ## Contact : cata7007@gmail.com ## ## Project : TravianZ ## @@ -19,7 +19,70 @@ ## --------------------------------------------------------------------------- ## ################################################################################# -global $village, $id; +global $village, $id, $session, $database, $building, $automation; + +if(time() - (!empty($_SESSION['time_p']) ? $_SESSION['time_p'] : 0) > 5){ + $_SESSION['time_p'] = ''; + $_SESSION['error_p'] = ''; +} +// --- CHANGE CAPITAL LOGIC (Command Center = echivalentul Palatului la Huni) --- +if($_POST && isset($_GET['action']) && $_GET['action'] == 'change_capital' && !$village->capital){ + $pass = $_POST['pass']; + $query = mysqli_query($database->dblink, 'SELECT password FROM `'.TB_PREFIX.'users` WHERE `id` = '.(int)$session->uid); + $data = mysqli_fetch_assoc($query); + if(password_verify($pass, $data['password'])){ + $query1 = mysqli_query($database->dblink, 'SELECT wref FROM `'.TB_PREFIX.'vdata` WHERE `owner` = '.(int)$session->uid.' AND `capital` = 1'); + $data1 = mysqli_fetch_assoc($query1); + $oldWid = (int)$data1['wref']; + $newWid = (int)$village->wid; + + if($oldWid != $newWid){ + $query2 = mysqli_query($database->dblink, 'SELECT * FROM `'.TB_PREFIX.'fdata` WHERE `vref` = '.$oldWid); + $data2 = mysqli_fetch_assoc($query2); + $query3 = mysqli_query($database->dblink, 'SELECT * FROM `'.TB_PREFIX.'fdata` WHERE `vref` = '.$newWid); + $data3 = mysqli_fetch_assoc($query3); + + // 1. campurile de resurse ale vechii capitale coboara la nivel 10 + for($i = 1; $i <= 18; ++$i){ + if($data2['f'.$i] > 10){ + mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'` = 10 WHERE `vref` = '.$oldWid); + } + } + // 2. sterge Stonemason's Lodge (34) din vechea capitala + for($i = 19; $i <= 40; ++$i){ + if($data2['f'.$i.'t'] == 34){ + mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.$oldWid); + } + } + // 3. sterge cladirile capital-only din noua capitala + // (Great Barracks 29, Great Stable 30, Great Granary 38, Great Warehouse 39, Great Workshop 49) + $capitalOnly = [29,30,38,39,49]; + for($i = 19; $i <= 40; ++$i){ + if(in_array((int)$data3['f'.$i.'t'], $capitalOnly)){ + mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.$newWid); + } + } + + $database->changeCapital($oldWid, 0); + $database->changeCapital($newWid); + + if(!isset($automation)){ + include_once("GameEngine/Automation.php"); + } + $automation->recountPop($oldWid, false); + $automation->recountPop($newWid, false); + + header("location: build.php?gid=44"); + exit; + } + }else{ + $error = '
    '.LOGIN_PW_ERROR.'
    '; + $_SESSION['error_p'] = $error; + $_SESSION['time_p'] = time(); + echo ''; + exit; + } +} $level = (int)$village->resarray['f'.$id]; ?> @@ -32,10 +95,6 @@ $level = (int)$village->resarray['f'.$id];

    - capital == 1):?> -

    - - = 10):?> @@ -44,5 +103,24 @@ $level = (int)$village->resarray['f'.$id];
    + capital == 1) { + echo '

    '.CAPITAL.'

    '; + } else { + if(empty($_GET['confirm'])) { + print '

    » '.CHANGE_CAPITAL.'

    '; + } else { + print '

    Are you sure, that you want to change your capital?
    You can\'t undo this!
    For security you must enter your password to confirm:
    +

    +'.(isset($_SESSION['error_p']) ? $_SESSION['error_p'] : '').' +'.PASSWORD.':
    + +
    +

    '; + } + } + ?> +
    \ No newline at end of file diff --git a/Templates/Build/47.tpl b/Templates/Build/47.tpl index 57eee5a3..e54ff324 100644 --- a/Templates/Build/47.tpl +++ b/Templates/Build/47.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid47[$level]['attri'] : 0; ?>
    + <?php echo DEFENSIVEWALL;?>

    diff --git a/Templates/Build/50.tpl b/Templates/Build/50.tpl index 44d1afbf..8ce9e971 100644 --- a/Templates/Build/50.tpl +++ b/Templates/Build/50.tpl @@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id]; $current = $level > 0 ? (int)$bid50[$level]['attri'] : 0; ?>
    + <?php echo BARRICADE;?>

    diff --git a/Templates/goldClub/trooplist.tpl b/Templates/goldClub/trooplist.tpl index 0ef26f99..2af28fb9 100644 --- a/Templates/goldClub/trooplist.tpl +++ b/Templates/goldClub/trooplist.tpl @@ -1,14 +1,16 @@ tribe - 1) * 10 + 1; -$end = $start + 5; +$end = $session->tribe * 10; /* build unit list once (keeps alignment safe) */ +global $unitsbytype; $units = []; for ($i = $start; $i <= $end; $i++) { - if (in_array($i, [4, 14, 23])) { + // scoutii nu pot fi folositi in farmlist (generic pentru toate triburile) + if (in_array($i, $unitsbytype['scout'])) { continue; } diff --git a/img/admin/admin_dark.css b/img/admin/admin_dark.css new file mode 100644 index 00000000..b2c2d3c3 --- /dev/null +++ b/img/admin/admin_dark.css @@ -0,0 +1,65 @@ +/* ========================================================================= + TravianZ Admin β€” Dark theme override + Loaded LAST in admin.php so it wins over admin.css / acp.css. + Scoped to body.app (the logged-in panel); login page keeps its own look. + Palette: page #0f172a Β· panel #0b1220 Β· border #1f2937 Β· header #111827 + text #e2e8f0 Β· muted #94a3b8 Β· accent #f59e0b Β· link #7dd3fc + ========================================================================= */ + +body.app{background:#0f172a;color:#e2e8f0} + +/* ---- layout containers from admin.css ---- */ +body.app #lmidall,body.app #lmidlc,body.app #lmid1,body.app #lmid2, +body.app #lmid3,body.app #content,body.app .nb{background:transparent!important;color:#e2e8f0} +body.app #lmid3 .nb{background:transparent!important} + +/* ---- side menu (overrides the white menu declared inline in admin.php) ---- */ +body.app #menu{background:#0b1220!important;border:1px solid #1f2937;box-shadow:0 4px 14px rgba(0,0,0,.45)} +body.app #menu>li>a{color:#cbd5e1!important;border-left:3px solid transparent} +body.app #menu>li>a:hover,body.app #menu>li>a.active{background:#111827!important;color:#fde68a!important;border-left-color:#f59e0b} +body.app #menu li.sub>a:before{color:#f59e0b} +body.app #menu li.sub ul{background:#0f172a!important} +body.app #menu li.sub ul li a{color:#94a3b8!important} +body.app #menu li.sub ul li a:hover,body.app #menu li.sub ul li a.active{color:#fde68a!important} + +/* ---- typography & links ---- */ +body.app h1,body.app h2,body.app h3,body.app h4{color:#f1f5f9} +body.app a{color:#7dd3fc} +body.app a:hover{color:#bae6fd} +body.app hr{border:0;border-top:1px solid #1f2937} +body.app fieldset{border:1px solid #1f2937;border-radius:8px} +body.app legend{color:#f59e0b} + +/* ---- classic Travian tables (.tbg) + generic tables ---- */ +body.app table.tbg,body.app .tbg{background:#0b1220!important;color:#e2e8f0;border-color:#1f2937!important} +body.app table.tbg th,body.app .tbg th{background:#111827!important;color:#94a3b8!important;border-color:#1f2937!important} +body.app table.tbg td,body.app .tbg td{background:#0b1220!important;color:#e2e8f0;border-color:#1f2937!important} +body.app table.tbg tr:hover td,body.app .tbg tr:hover td{background:#0f1a30!important} + +/* generic unclassed tables that some pages render via admin.css */ +body.app #lmid3 table:not([class]) th{background:#111827;color:#94a3b8;border-color:#1f2937} +body.app #lmid3 table:not([class]) td{border-color:#1f2937} + +/* ---- form controls ---- */ +body.app input[type=text],body.app input[type=password],body.app input[type=number], +body.app input[type=email],body.app input[type=search],body.app input[type=date], +body.app input[type=datetime-local],body.app select,body.app textarea,body.app .fm{ + background:#0b1220!important;color:#e2e8f0!important;border:1px solid #334155!important; + border-radius:5px;padding:5px 7px} +body.app input::placeholder,body.app textarea::placeholder{color:#64748b} +body.app input:focus,body.app select:focus,body.app textarea:focus{border-color:#f59e0b!important;outline:none} +body.app select option{background:#0b1220;color:#e2e8f0} + +body.app input[type=submit],body.app input[type=button],body.app button, +body.app .adminButton,body.app .button{ + background:#f59e0b;color:#1a1a2e;border:0;border-radius:6px;padding:6px 14px; + cursor:pointer;font-weight:bold} +body.app input[type=submit]:hover,body.app input[type=button]:hover, +body.app button:hover,body.app .adminButton:hover,body.app .button:hover{background:#fbbf24} + +/* checkbox / radio accent */ +body.app input[type=checkbox],body.app input[type=radio]{accent-color:#f59e0b} + +/* medal mouseover tooltip layer (from admin.css) */ +body.app #medal_mouseover table{background:#0b1220;color:#e2e8f0;border:1px solid #1f2937} +body.app #medal_mouseover table th{background:#111827;color:#94a3b8}